首頁  >  文章  >  系統教程  >  效能提升8450%,Linux核心函數獲得大幅改進

效能提升8450%,Linux核心函數獲得大幅改進

WBOY
WBOY轉載
2024-02-09 17:50:12831瀏覽

這是一個深度偽原創的版本:Jason Donenfeld 是 WireGuard 的主要開發人員,同時也是 Linux 核心隨機數相關程式碼的維護者。在他的領導下,Linux 核心的隨機數產生器程式碼得到了巨大的改進。

在先前的 Linux 5.17 版本中,Jason Donenfeld 就將隨機程式碼中的 SHA1 替換為了 BLAKE2s。由於 BLAKE2s 的特性,它通常比 SHA1 更快更安全。經過測試,這個簡單的轉換就能帶來約 131% 的速度提升。

儘管在 Linux 5.17 版本中已經取得了巨大的速度提升,但 Jason Donenfeld 並不滿足。因此,在 Linux 5.18 版本中,他對隨機程式碼進行了更多改進。

效能提升8450%,Linux核心函數獲得大幅改進

透過查看 Linux 的 random.git 倉庫的日誌能夠看出(上圖),開發者 Jason Donenfeld 在最近兩天時間裡進行了大量的程式碼提交。這些提交內容都將在 3 月下旬 Linux 5.18 的合併視窗啟動時引入核心。

效能提升8450%,Linux核心函數獲得大幅改進

在郵件中特別強調到,透過使用正在開發的最新程式碼,用於獲取隨機位元組的 getrandom() 呼叫能夠獲得更好的效能。在配備英特爾 Xeon E5-2697 v2 @ 2.70GHz CPU 和 112G 記憶體的裝置上進行 stress-ng getrandom() 基準測試後,更是獲得了 8450% 的效能提升。

此變更基本上會將先前的全域結構(實際上是 per-numa 節點結構)變更為 per-cpu 結構,這表示快速路徑上的許多鎖定都會消失。因此,當在具備多核心的 CPU 上同時嘗試 getrandom() 時,毫無疑問效能會出現提升。只不過沒想到在測試中能帶來 8450% 的提升。

除此之外,當從 per-numa 更改為 per-cpu 後,也將不再需要被推遲到工作隊列上線後才能進行。也正如我之前所說,此次改進將會為高核心數的電腦和伺服器帶來巨大收益。

以上是效能提升8450%,Linux核心函數獲得大幅改進的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除