由於 Red Hat 即將推出的工作,Linux 6.4 設備映射器 (DM) 代碼有望看到一些優化工作,這些工作可以顯著提高並發 I/O 性能……在一個案例中,現在至少獲取緩衝區的速度提高了大約 25 倍。
Red Hat 的 Joe Thornber、Mike Snitzer 和 Mikulas Patocka 一直致力於對 DM 代碼進行一些有趣的改進,以提高並發 I/O 性能。這項工作已經開始在 Device Mapper 的 dm-6.4 分支。
Snitzer 還在 dm-devel 上發帖 關於這項工作以及為 Linux 6.4 準備好一切以幫助提高並發 I/O 性能的計劃。一些關鍵說明包括:
當多個線程對瘦設備執行 IO 時,底層的 dm_bufio 對象可能成為瓶頸;減慢對存儲精簡元數據的 btree 節點的訪問。在此提交之前,每個 bufio 實例都有一個互斥鎖,用於每個 bufio 操作。
此提交專注於改進以下常見情況:dm_bufio 的用戶希望訪問但不修改已在 dm_bufio 緩存中的緩衝區。
…
請幫助進一步測試其他更具異國情調的 DM bufio 消費者和精心設計的用例(通過 Android、Chrome 操作系統等)。
…
大多數 bufio 操作的性能沒有變化。但是,如果多個線程同時嘗試獲取緩衝區,並且這些緩衝區已經在緩存中,那麼速度就會大大提高。例如,一個測試有 16 個“熱點”線程模擬 btree 查找,而另一個線程會弄髒整個設備。在這種情況下,熱點線程獲取緩衝區的速度提高了大約 25 倍。
距離 Linux 6.4 內核合併窗口開始還有大約一個月的時間。