Linux為開發人員和工程師提供一種"調整"其運行的方法,它提供數千個單獨的參數,可以調整開源內核管理資源的方式。這種調整方式可以更快捷地提高運行性能,而不需要重新編譯內核,但這仍然是一項具有挑戰性的工作,即使對於最熟練的自由和開放源碼軟件編程人員來說也是如此。
內核調優是一項極具挑戰性的工作,因此有人試圖利用人工智能來代替人類開發人員處理這項工作。中國科技公司字節跳動(ByteDance)最近公佈 Linux 內核自動調整的測試結果,這是一種基於人工智能的解決方案,可以解放人類工程師,通過分析歷史數據做出更好的調整決策--人類通常會發現這是一項具有挑戰性的任務。
通過調整實現最佳 Linux 性能是一個耗時的過程,需要 Linux 專傢進行大量實驗。不同的工作負載需要針對不同的內核參數集采用不同的調整方法。字節跳動的開發人員 Cong Wang 提到,在大規模數據中心(如該公司使用的數據中心)中,針對"數以百計"的不同工作負載手動調整 Linux 內核幾乎是不可能的。
雖然確實存在旨在簡化內核調整的工具,但它們提供的是特定類型的優化。字節跳動的方法旨在推出內核調整領域的首個自動化解決方案--一種能夠以最小的工程投入覆蓋所有 Linux 調整參數的技術。
Wang的團隊特別關註Linux內存管理系統的優化。通過采用貝葉斯優化等機器學習算法,該公司發現自動參數調整可以取得比大多數Linux內核工程師通常所取得的更好的結果。
字節跳動的自動調整工具旨在根據特定的工作負載和硬件配置自動調整 Linux 內部設置。內核經過動態調整,可確保在各種情況下都能實現最佳性能,從而解決長期以來需要針對每個計算實例手動調整內核的難題。
在大多數情況下,Wang 及其同事基於人工智能的自動調整似乎效果顯著。根據字節跳動的介紹,機器學習算法可以通過實時監控內核性能來動態優化系統,通過優化資源使用來提高效率。人工智能系統還擁有友好的用戶界面,讓技術知識有限的用戶也能從更好用的內核中受益。同時,高級用戶可以自定義自動調整參數。
字節跳動聲稱,機器學習算法可將應用程序的內存使用率降低 30%,或優化 NGINX 服務器上的 HTTP 網絡延遲,從而使網絡性能比手動調整提高 12%。在雲計算和數據中心場景中,這些改進可以顯著節約成本並優化性能。開發人員承認,通過機器學習進行內核自動調整並非在每種情況下都有效,但預計它將變得越來越必要。
訪問文檔解更多:
https://lpc.events/event/17/contributions/1520/attachments/1152/2582/Linux%20Kernel%20Autotuning.pdf