Linux 6.9 將在具有大量 RAM 的大型系統上提供更快的啟動速度

Tux,Linux 內核的吉祥物

Linux 內核是 Linux 操作系統 (OS) 的支柱,是計算機硬件與其進程之間的基本接口。

幾天前 我們在部落格上分享其中一項變更的消息 我們在發表會上可以找到什麼 Linux 核心 6.9 的 目前正在開發中,各種變更已經公佈,我們宣布 EXT2 已經進入過時類別,並且舊 NTFS 驅動程式的使用將被擱置,以支持 由 Paragon Software 開發的驅動程式。

現在, 最新消息 關於 Linux 6.9 將向我們呈現的新功能是 此版本的核心將帶來啟動時間的顯著提升 對於管理具有大量 RAM 的系統的用戶,尤其是那些 他們利用 HugeTLB 頁面。 這會大幅減少系統引導過程中初始化這些頁面所需的時間。

相關文章:
Paragon發布了用於Linux內核的NTFS實現

Linux 6.9 中新增的更改 將允許具有大量 HugeTLB 頁的系統顯著減少 在開始時間。例如,在初始化了 2 個 1800GB 頁面的 1TB 系統上, 目前,總共 1 秒只需要 2 到 10 秒,這在這個時代無疑是一個相當大的進步。同樣,在 12TB Intel 主機上,初始化 11 個 776GB 頁面可能需要一分鐘以上的時間,您將看到這些啟動時間顯著減少。

這些進步 字節跳動的 Linux 開發人員李剛的辛勤工作使這些成為可能, 他實施了一系列補丁,並經過多次審查以確保高效執行。現有的核心基礎設施,例如 padata_do_multithreaded,經過最小的修改即可實現這些結果。

v6 中的兩個更新...

– 修正了 Together_bootmem_prealloc_node 中的潛在錯誤
padata_do_multithreaded 實作確保每個
Together_bootmem_prealloc_node 任務處理節點。然而,API 描述
在註解 padata_do_multithreaded 中表示 padata_do_multithreaded 也
您可以將多個節點一起指派給一個任務_bootmem_prealloc_node。

為了避免將來對 padata_do_multithreaded 進行更改時可能出現的錯誤,
引入了 Together_bootmem_prealloc_parallel 來包裝
Together_bootmem_prealloc_node。

好處 這些改進尤其是 在服務可用性和系統正常運作時間至關重要的環境中值得注意, 就像管理超大型伺服器的超大規模企業和大型組織一樣。重新啟動期間啟動時間的減少對於確保更快、更有效率的正常運作時間非常有利。

除此之外, 還值得一提的是另一個變化 這些已包含在 Linux 6.9 中,該補丁由 Intel 經驗豐富的 Linux 工程師提供,其中 引入了一種改進的技術,用於限制 x86 快取刷新中的記憶體頻寬,類似於 Intel 在 RDT 和 AMD EPYC CPU 中使用的 resctrl 程式碼。

補丁作者提到:

當群組使用的頻寬超過模式檔案中使用者設定的頻寬時,MBA_mbps 回饋循環會增加限制,而當低於目標時,則減少限制。

值得一提的是限制記憶體頻寬的新技術 設計用於更有效地處理負載水平不均勻的工作負載s,避免以前版本的核心中發生的不必要的懲罰。

為了避免每次迭代中加速比出現不必要的波動,“delta_comp”標誌用於指示要在“delta_bw”中的下一次迭代中記錄的實際頻寬變化。僅噹噹前頻寬加上 delta_bw 低於使用者目標時,才會減少限制。

因此提到 此演算法適用於恆定頻寬工作負載, 但如果工作負載在節流發生變化時發生變化,則可能會失敗。為了解決這個問題,採用了一種更簡單的技術,該技術可以計算如果將節流降低到下一個更高級別,則頻寬的潛在增加量,確保在降低節流之前頻寬保持低於用戶的目標。

如果你是 有興趣了解更多,您可以在以下連結中查閱詳細資訊: