• 您現在的位置是:首頁 >綜合 > 2021-02-08 06:31:07 來源:

    實現快速數據中心運營的更高效率

    導讀 今天的數據中心耗盡并浪費了大量的能量,盡可能快地響應用戶請求,只有幾微秒的延遲。麻省理工學院研究人員的新系統通過在中央處理單元(CPU

    今天的數據中心耗盡并浪費了大量的能量,盡可能快地響應用戶請求,只有幾微秒的延遲。麻省理工學院研究人員的新系統通過在中央處理單元(CPU)內核之間更好地分配時間敏感數據處理并確保硬件高效運行,提高了高速操作的效率。

    數據中心作為分布式網絡運行,在單個服務器上實現了大量Web和移動應用程序。當用戶向應用程序發送請求時,存儲數據的位數將從數百或數千個服務中提取出來。在發送響應之前,應用必須等待最慢的服務來處理數據。這種滯后時間稱為尾部延遲。

    當前減少尾部延遲的方法會使服務器中的大量CPU核心處于打開狀態,以快速處理傳入的請求。但這意味著核心大部分時間都處于空閑狀態,而服務器繼續使用能源只是為了保持通電。數據中心可以包含數十萬臺服務器,因此即使每臺服務器的效率有所改善,也可以節省數百萬美元。

    或者,某些系統會根據工作負載在應用程序之間重新分配核心。但這種情況發生在毫秒級 - 大約是今天快節奏請求所需速度的千分之一。等待時間過長也會降低應用程序的性能,因為在分配的時間之前未處理的任何信息都不會發送給用戶。

    在下周的USENIX網絡系統設計和實施會議上發表的一篇論文中,研究人員開發了一種更快的核心分配系統,稱為Shenango,可以減少尾部延遲,同時實現高效率。首先,一種新穎的算法可以檢測哪些應用正在努力處理數據。然后,軟件組件分配空閑內核以處理應用程序的工作負載。

    “在數據中心,效率和延遲之間存在權衡,你真的需要以比每毫秒更精細的粒度重新分配核心,”第一作者,計算機科學和人工智能實驗室(CSAIL)博士生Amy Ousterhout說。Shenango讓服務器“管理在非常短的時間內發生的操作,并且有效地進行操作。”

    能源和成本節省因數據中心而異,具體取決于規模和工作量。但總體目標是提高數據中心的CPU利用率,以便充分利用每個核心。目前最好的CPU利用率約為60%,但研究人員表示,他們的系統有可能將這一數字提高到100%。

    “今天的數據中心利用率相當低,”共同作者,電氣工程和計算機科學助理教授,CSAIL研究員Adam Belay說。“這是一個非常嚴重的問題[無法在數據中心的一個地方解決。但這個系統是提高利用率的關鍵因素之一。”

    加入Ousterhout和Belay的是Hari Balakrishnan,富士通電氣工程和計算機科學系講座教授,以及CSAIL博士生Jonathan Behrens和Joshua Fried。

    高效的擁塞檢測

    在現實世界的數據中心中,Shenango算法和軟件將在數據中心的每臺服務器上運行。所有服務器都能夠相互通信。

    該系統的第一項創新是一種新穎的擁塞檢測算法。算法每隔5微秒檢查排隊等待處理的數據包。如果數據包仍在等待上次觀察,則算法會注意到至少有5微秒的延遲。它還檢查是否有任何計算進程(稱為線程)等待執行。如果是這樣,系統會認為這是一個“擁擠”的應用程序。

    看起來很簡單。但隊列的結構對于實現微秒級擁塞檢測非常重要。傳統思維意味著讓軟件檢查每個排隊數據包的時間戳,這將花費太多時間。

    研究人員在稱為“環形緩沖區”的高效結構中實現隊列。這些結構可以被視為環周圍的不同槽。第一個輸入的數據包進入起始時隙。隨著新數據的到來,它們會被放入環的后續插槽中。通常,這些結構用于先進先出數據處理,從起始時隙拉出數據并向結束時隙工作。

    然而,研究人員的系統只在結構中簡要地存儲數據包,直到應用程序可以處理它們。同時,存儲的數據包可用于擁塞檢查。該算法僅需要比較隊列中的兩個點 - 第一個數據包的位置和最后一個數據包在5微秒前的位置 - 來確定數據包是否遇到延遲。

    “您可以查看這兩點,并每隔5微秒跟蹤一次進度,看看已經處理了多少數據,”Fried說。因為結構很簡單,“你只需要每個核心執行一次。如果你正在查看24個核心,你可以在5微秒內完成24次檢查,這可以很好地擴展。”

    智能分配

    第二項創新稱為IOKernel,它是將數據包引導到適當應用程序的中央軟件中心。IOKernel還使用擁塞檢測算法,比傳統方法更快地將內核快速分配給擁擠的應用程序數量級。

    例如,IOKernel可能會看到某個需要微秒處理速度的應用程序的傳入數據包。如果應用程序由于缺少核心而擁擠,那么IOKernel會立即將閑置核心用于應用程序。如果它還看到另一個應用程序正在運行具有較少時間敏感數據的核心,它將抓住其中一些核心并將它們重新分配給擁擠的應用程序。應用程序本身也有幫助:如果應用程序沒有處理數據,它會向IOKernel發出警報,告知其核心可以重新分配。處理后的數據返回IOKernel以發送響應。

    “IOKernel專注于哪些應用需要沒有它們的內核,”Behrens說。“它試圖找出誰過載并需要更多內核,并盡可能快地為它們提供核心,因此它們不會落后并且具有巨大的延遲。”

    IOKernel,算法,應用程序和服務器硬件之間的緊密通信“在數據中心中是獨一無二的”,并允許Shenango無縫運行,Belay說:“系統可以全面了解每臺服務器中發生的情況。它看到硬件提供了數據包,每個核心的運行位置,以及每個應用程序的繁忙程度。它以微秒級的速度運行。“

    接下來,研究人員正在改進Shenango的實際數據中心實施。為此,他們確保軟件可以處理非常高的數據吞吐量并具有適當的安全功能。

  • 成人app