高效能網路SIG月度動態:virtio新裝置進入virtio規範、smc新特性IPC效能比tcp提升88%

OpenAnolis小助手發表於2023-01-11

高效能網路 SIG :在雲端計算時代,軟硬體高速發展,雲原生、微服務等新的應用形態興起,讓更多的資料在程式之間流動,而網路則成為了這些資料流的載體,在整個雲時代扮演者前所未有的重要角色。在這個萬物互聯的時代,雲上的網路通訊效率對各種服務至關重要,高效能網路興趣組致力於利用 XDP、RDMA、VIRTIO 等新高效通訊技術,結合軟硬體一體化的思想,打造高效能網路協議棧,提升雲端計算時代資料中心應用的網路的效能。

01 本月 SIG 整體進展

12 月高效能網路 SIG 的主要工作聚焦在 Anolis OS 通用核心網路、SMC 和 virtio 上。以下為關鍵進展:

  • 龍蜥社群高效能網路 SIG 提出的 virtio 裝置:virtio-ism 的 spec 提交到 virtio 社群,相應的裝置 ID 經過 virtio TC 的投票已經進入 virtio 規範。

  • 龍蜥社群高效能網路 SIG 提出的 SMC loopback 裝置的支援的 RFC 提交到 linux 社群討論。

  • ANCK-5.10 即將釋出 013 版本,SMC 做了大量的最佳化和修復。

02 Anolis OS

問題修復

12 月 ANCK 網路方向共計修復 33 個 CVE(包含一個高危 CVE-2022-4378),覆蓋 tcp/netfilter/ip/tc/vsock/wifi/bluetooth/can 等模組,CVE 列表:CVE-2022-42895、CVE-2022-3435、CVE-2022-3633、CVE-2022-3535、CVE-2022-0812、CVE-2022-39190、CVE-2022-42719、CVE-2022-1015、CVE-2022-42895、CVE-2021-4203、CVE-2022-1204、CVE-2022-1012、CVE-2021-33135、CVE-2022-1012、CVE-2022-1966、CVE-2022-1966、CVE-2022-1679、CVE-2022-3028、CVE-2022-3028、CVE-2022-2663、CVE-2022-3567、CVE-2022-3586、CVE-2022-41674、CVE-2022-42722、CVE-2022-42721、CVE-2022-42720、CVE-2022-3566、CVE-2022-3521, CVE-2022-3524、CVE-2022-3435、CVE-2022-3564、CVE-2022-3625、 CVE-2022-4378。

功能增強

  • PR908 5.10 核心 ipvs 支援透過 run_estimation sysctl 關閉 estimation。

03 SMC

版本釋出

12 月 SMC 最新穩定版將隨著 ANCK 5.10-013 釋出。本次釋出的版本將包括如下更新:

  • 支援使用 SMC-R v2 + eRDMA RoCE v2。與現有 SMC-R v1 + eRDMA iWARP 相比沒有效能區別。執行 SMC-R v2 前需要載入相容模式 eRDMA 驅動,並使用 smc-tools 在通訊兩側設定相同的 ueid。

  • 增加 CQ event_handler 採集 CQ 資訊。

  • 增加 DIM proc file 顯示 DIM 狀態。

  • 去除 sndbuf 清空操作。

  • 引入 lockfree CQ。

  • 允許 SMC-R 連線同時進行建連過程,而不是互斥等待。

  • 修復 SMC-R 中記憶體被錯誤覆蓋導致應用程式資料被破壞問題。

  • 修復 SMC-R 中建立額外的 Link 導致的 panic 問題。

SMC loopback

SMC loopback 特性由高效能網路 SIG 成員 Wen Gu 提交 RFC 至上游社群(patch 連結)。SMC loopback 特性提供了一種更高效能的本機 loopback 通訊方式,特別是對於容器通訊的場景,從而藉助 SMC 自動選擇最優加速方式,例如跨主機 RDMA 和本機 loopback。從 Wen Gu 給出的資料來看,吞吐對比 TCP loopback 提升 88%,時延降低 49%,在 ipc-benchmark 場景下,對比 UNIX domain 也有 30% 的效能優勢。

04 virtio

virtio ism

virtio-ism 是由龍蜥社群高效能網路 SIG 提出的一種在相鄰的 vm 之間進行記憶體共享的 virtio 裝置。配合 smc 可以實現 vm 之間的高效能通訊。同時也可以用於容器與容器或容器與虛擬機器之間的高速共享記憶體通訊。

目前 virtio ism id (44)已經被 virtio 社群接受。

連結地址:

後續關於裝置定義的 spec 以及相應實現的 RFC 已經提交到 virtio 郵件列表討論:

virtio-net tunnel

網路包使用 tunnel 相關技術的時候, 一般都會有一個 outer header 和一個 inner header。而基於已經有 virtio-net spec 定義, 在做佇列選擇的時候, 會基於 outer header 進行 hash 計算。而一般情況下, tunnel 的資料包的 outer header 是固定的或相似的, 這樣只會有少量的網路卡佇列會被選擇, 無法發揮多佇列網路卡的優勢。

Heng Qi hengqi@linux.alibaba.com 發起了 virtio_net:support inner header hash 的提案。

連結地址:

經過多輪討論, 這個提案的 v4 版本目前已經基本完成了 review,預計在 2023.1 月在 virtio TC 進行投票。

virtio-net xdp multi-buffer

Heng Qi hengqi@linux.alibaba.com本月提交了 virtio-net 對於 xdp multi-buffer 的支援的 patch set 到 linux 社群。目前這個 patch set 的 9 個 patch 大部分也已經被 ack 了,還有少量問題還在和 Linux 社群討論中。

高效能網路 SIG 主頁連結地址:

—— 完 ——


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2931779/,如需轉載,請註明出處,否則將追究法律責任。

相關文章