MIT 的新 CPU 負載平衡器

Shenango系統計劃用於資料中心。

MIT 的新 CPU 負載平衡器
/ 照片 Marco Verch CC BY

據一位提供者稱,數據中心 僅 20-40% 的可用運算能力。 在高負載時該指標 可達60%。 這種資源分配導致了所謂的「殭屍伺服器」的出現。 這些機器大部分時間都閒置,浪費能源。 如今全球 30% 的伺服器 沒有工作,每年消耗價值 30 億美元的電力。

麻省理工學院決定解決計算資源使用效率低的問題。

工程團隊 已開發 處理器負載平衡系統稱為 Shenango。 其目的是監視任務緩衝區的狀態並將卡住的進程(無法接收 CPU 時間)重新分配給空閒機器。

Shenango 的運作方式

Shenango 是一個 C 語言的 Linux 函式庫,具有 Rust 和 C++ 綁定。 專案程式碼和測試應用程式發佈於 儲存庫 - GitHub。

該解決方案基於IOKernel 演算法,該演算法在多處理器系統的專用核心上運行。 它使用框架管理 CPU 請求 DPDK,它允許應用程式直接與網路設備通訊。

IOKernel 決定將特定任務委託給哪些核心。 該演算法還決定需要多少個核心。 對於每個進程,確定主核心(保證)和附加核心(突發)-後者在 CPU 請求數量急劇增加時啟動。

IOKernel 請求隊列的組織方式為 環形緩衝區。 每五微秒,演算法就會檢查分配給核心的所有任務是否已完成。 為此,它將緩衝區頭部的當前位置與其尾部的先前位置進行比較。 如果在上次檢查時發現尾部已經在佇列中,系統會記錄緩衝區過載並為該程序分配一個額外的核心。

分配負載時,優先權會分配給較早執行相同進程並部分保留在快取中的核心,或任何空閒核心。

MIT 的新 CPU 負載平衡器

Shenango 也採取了這種方法 偷工作。 分配運行一個應用程式的核心會監視彼此的任務數量。 如果一個核心先於其他核心完成其任務列表,那麼它就會「減輕」其鄰居的部分負荷。

優點和缺點

根據 麻省理工學院的工程師表示,Shenango 每秒能夠處理 37 萬個請求,並保持 100 微秒的平均回應時間。 專家表示,在某些情況下,該技術可以將資料中心處理器的使用率提高到XNUMX%。 因此,資料中心營運商將能夠節省伺服器的購買和維護費用。

解決方案潛力 慶祝 以及其他大學的專家。 據韓國一家研究所的教授稱,麻省理工學院的系統將有助於減少網路服務的延遲。 例如,它在線上商店中很有用。 在銷售日,頁面載入甚至會出現第二次延遲 приводит 網站瀏覽量減少了 11%。 及時的負載分配將有助於服務更多的客戶。

該技術仍然有缺點——它不支援多處理器 NUMA-晶片連接到不同記憶體模組且彼此不「通訊」的系統。 在這種情況下,IOKernel 可以調節一組單獨的處理器的操作,但不能調節所有伺服器晶片的操作。

MIT 的新 CPU 負載平衡器
/ 照片 蒂姆·雷克曼 CC BY

類似技術

其他處理器負載平衡系統包括 Arachne。 它會計算應用程式啟動時需要多少個核心,並根據該指標分配進程。 據作者稱,Arachne 中應用程式的最大延遲約為 10 微秒。

該技術作為 Linux 的 C++ 庫實現,其原始程式碼可在 GitHub上.

另一個平衡工具是 ZygOS。 與 Shenango 一樣,該技術使用工作竊取方法來重新分配進程。 根據ZygOS的作者介紹,使用該工具時的平均應用程式延遲約為150微秒,最大值約為450微秒。 專案代碼也是 屬於公共領域.

發現

現代資料中心不斷擴張,成長趨勢在超大規模資料中心市場尤為明顯:目前在全球範圍內 那裡 430 個超大規模資料中心,但未來幾年其數量可能會增加 30%。 因此,處理器負載平衡技術的需求將會很大。 像 Shenango 這樣的系統已經可用 實施 大公司,此類工具的數量未來只會增加。

第一篇部落格中關於企業 IaaS 的貼文:

來源: www.habr.com

添加評論