當前位置:
首頁 > 科技 > 計算機新跨內核分配對時間敏感的數據處理,可快速響應用戶!

計算機新跨內核分配對時間敏感的數據處理,可快速響應用戶!

博科園:本文為計算機科學類

現今的數據中心會消耗大量能量,並且會浪費大量的能量來儘可能快地響應用戶的請求,而延遲只有幾微秒。麻省理工學院(MIT)研究人員開發的一種新系統,通過更好地跨中央處理器(CPU)內核分配時間敏感的數據處理,並確保硬體高效運行,提高了高速操作的效率。數據中心作為分散式網路運行,在單個伺服器上實現大量web和移動應用程序。當用戶嚮應用程序發送請求時,存儲的數據片段將從數百或數千個伺服器上提取。在發送響應之前,應用程序必須等待最慢的服務來處理數據,這種延遲時間稱為尾部延遲。當前減少尾部延遲的方法使伺服器中大量CPU內核處於打開狀態,以便快速處理傳入的請求。

博科園-科學科普:但這意味著內核大部分時間處於閑置狀態,而伺服器繼續使用能源只是為了保持供電。數據中心可以包含數十萬台伺服器,因此即使每台伺服器的效率稍有提高,也可以節省數百萬美元。或者,一些系統根據工作負載在應用程序之間重新分配內核。但是這發生在毫秒以上——大約是當今快節奏請求所需速度的千分之一。等待太久也會降低應用程序的性能,因為在分配的時間之前沒有處理的任何信息都不會發送給用戶。在USENIX網路系統設計與實現大會上發表的一篇論文中,研究人員開發了一種更快的核心分配系統,名為Shenango,它可以減少尾部延遲,同時實現高效率。

麻省理工學院(MIT)研究人員開發的一個新系統,通過更好地跨CPU內核分配時間敏感的數據處理,並確保硬體高效運行,提高了數據中心高速操作的效率。圖片:Massachusetts Institute of Technology

首先,一種新的演算法可以檢測哪些應用程序正在艱難地處理數據。然後,軟體組件分配空閑內核來處理應用程序的工作負載。第一作者、計算機科學與人工智慧實驗室(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微秒跟蹤它們的進程,看看有多少數據被處理過。因為結構很簡單,每個核心只需要做一次。如果你查看24個核,會在5微秒內進行24次檢查,這很好。


智能分配

第二個創新是IOKernel,它是將數據包引導到適當應用程序的中央軟體中心。IOKernel還使用擁塞檢測演算法,能夠比傳統方法更快地將內核分配給擁塞應用程序,速度要快幾個數量級。例如,IOKernel可能會看到某個應用程序需要微秒處理速度的傳入數據包。如果應用程序因為缺少內核而擁塞,IOKernel會立即將空閑的內核分配給應用程序。如果它還看到另一個應用程序運行著對時間不敏感的內核,它會抓取其中一些內核,並將它們重新分配給擁塞的應用程序。處理後的數據返回IOKernel發送響應。

IOKernel關注的是哪些應用程序需要沒有核心的內核,試圖找出誰超載了,需要更多的核,並儘快給他們提供核,這樣他們就不會落後,也不會有很大的延遲。IOKernel、演算法、應用程序和伺服器硬體之間的緊密通信「在數據中心中是獨一無二的,並允許Shenango無縫地運行,該系統對每個伺服器上發生的事情具有全局可見性。它可以看到提供數據包的硬體、每個內核中運行的內容以及每個應用程序的繁忙程度。它在微秒的尺度上做到了這一點。接下來,研究人員將對Shenango進行優化,以實現真實的數據中心。為此,他們確保軟體能夠處理非常高的數據吞吐量並具有適當的安全特性。

博科園-科學科普|研究/來自: 麻省理工學院/Rob Matheson

博科園-傳遞宇宙科學之美

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 博科園 的精彩文章:

物理學家將150個離子晶體「瞬間凍結」!
人工智慧在現代DNA中發現古代人類的痕迹!

TAG:博科園 |