上週 Linux 6.4 內核合併了所有 VirtIO 和虛擬數據路徑加速 (VDPA) 更改。該拉取請求的有趣之處在於為 VDUSE 帶來了巨大的性能提升。

對於那些不記得的人,VDUSE 早在 2021 年就與 Linux 5.15 合併到內核中。 VDUSE 圍繞在用戶空間中實現 VDPA 設備。 vDPA 框架是內核中的 VirtIO 數據路徑加速代碼,適用於符合 VirtIO 規範但依賴供應商特定控制路徑的設備。 vDPA 框架越來越多地用於抽象硬件並將硬件複雜性的某些元素隱藏到軟件中,同時具有統一的用戶空間 API 作為 VirtIO 設備。 VDUSE 允許在用戶空間中實現 vDPA 軟件模擬設備。

字節跳動工程師在過去幾個月一直致力於提升VDUSE的性能。通過一組補丁來緩解 virtio-blk 驅動程序中的 virtqueue 鎖爭用,字節跳動發現性能提高了大約 50%:在他們的測試中從 600k 到 900k IOPS。來自 Bytedance 的補丁還添加了一個 sysfs 接口,以允許更改每個 VDUSE virtqueue 的 IRQ 回調的親和力,以幫助進行性能調整,還添加了一個 sysfs 接口,以設置 virtio-vdpa 的反彈緩衝區大小,以針對高吞吐量工作負載進行調整。僅 50% 的提升就很不錯,而這些用於進一步性能調整的新旋鈕則是錦上添花。

Linux 6.4 的 VirtIO/VDPA 更改還帶來了 VirtIO 中斷率的降低、vhost-scsi 的可擴展性改進以及其他改進。通過此拉動了解有關這些更改的更多詳細信息。


那些希望了解更多信息的人VDUSE 通常可以通過 kernel.org 文檔 來實現。

Categories: IT Info