高效能網路 SIG 月度動態:推動 virtio 支援動態中斷調節及更靈活的分流機制
高效能網路 SIG(Special Interest Group) :在雲端計算時代,軟硬體高速發展,雲原生、微服務等新的應用形態興起,讓更多的資料在程式之間流動,而網路則成為了這些資料流的載體,在整個雲時代扮演著前所未有的重要角色。在這個萬物互聯的時代,雲上的網路通訊效率對各種服務至關重要,高效能網路興趣組致力於利用 XDP、RDMA、VIRTIO 等新高效通訊技術,結合軟硬體一體化的思想,打造高效能網路協議棧,提升雲端計算時代資料中心應用的網路的效能。
01 SIG 整體進展
本月高效能網路 SIG 的主要工作聚焦在 virtio 對 NetDIM 的支援以及多個 virtio 提案的發起。
本月關鍵進展:
-
SIG 推動完成了 NetDIM 的 virtio 標準和 OS 程式碼,修復了多個上游問題並在 sockperf benchmark 中獲得 20%+ 的吞吐提升。
-
SIG 與 Nvidia、Marvell 等合作發起了 [PATCH requirements v5 5/7] net-features: Add n-tuple receive flow filter]() 的提案,讓 virtio 支援接收流過濾的能力,提供靈活的流規則配置方法。以及 [PATCH v2] virtio-net:support the RSS context]() 提案,使 virtio 支援多個 RSS (Receive Side-Scaling) 配置上下文。
02 ANCK
安全
本月網路方向共計修復 9 個 CVE,覆蓋 sched/ipvlan/ipv6/netfilter/xfrm 等模組,CVE 列表:
CVE-2023-3609、CVE-2023-3611、CVE-2023-3090、CVE-2023-2156、CVE-2023-3773、CVE-2023-3776、CVE-2023-3812、CVE-2023-3390、CVE-2023-4147。
03 SMC
本月高效能網路 SIG 在 SMC 領域的工作主要聚焦在上游 SMC-D 虛擬裝置擴充方案的推動。
SMC-D 虛擬裝置擴充
SMC-D 被用於物理機內部的 SMC 加速,在過去只能配合 IBM s390 架構中的 ISM 裝置使用。SIG 積極推動 SMC-D 虛擬裝置擴充,以便於在其他架構中享受 SMC-D 帶來的效能提升。
本月的 SMC 開發者會議上確定了使用 UUID 作為 SMC-D 虛擬裝置的 GID,從而在無中心的情況下確保虛擬裝置 GID 的唯 一性。在 Linux 中將使用最為常用的 UUIDv4 作為 SMC-D loopback 等虛擬裝置 GID 的實現方式。此外,除 0-0x7FFF 以外的 VCHID 將預留 4K 個給 SMC-D 虛擬裝置,以幫助 SMC-D 握手時快速分辨對端虛擬裝置是否可達。
04 Virtio
本月高效能網路 SIG 在 virtio 領域的工作,主要聚焦在:
(1)測試動態中斷調節效能資料。
(2)推動接收流過濾、RSS Context 的標準方案。
動態中斷調節
動態中斷調節 NetDIM 演算法透過統計裝置佇列的流量資訊,自適應調整網路卡中斷頻率,以達到吞吐提升的目的。
高效能網路小組推動完成了 NetDIM 的 virtio 標準和 OS 程式碼,發現並修復了多個上游核心問題。測試結果顯示,在 sockperf benchmark 中可以最大提升 20+% 的吞吐。
高效能網路小組進一步分析了 NetDIM 的時延影響,發現 NetDIM 會對低載小包時延產生不利影響,這是由於 NetDIM 演算法設計更加關注吞吐提升,沒有針對性關注時延提升而造成的。我們會針對此時延問題嘗試作出進一步的最佳化。
接收流過濾
接收流過濾(Receive Flow Filter)能力提供接收方向的資料流處理,包括資料流導向、資料流過濾等,為使用者提供了靈活的流規則配置方法。資料流導向功能基於使用者在 virtio 網路卡上配置的資料流規則,可以將匹配了某個規則的資料流導到對應的單個或多個目的佇列。資料流過濾功能可以將匹配了某個規則的資料包文丟棄。
高效能網路小組與 Nvidia、Marvell 等合作發起了 [PATCH requirements v5 5/7] net-features:Add n-tuple receive flow filter]() 的提案,讓 virtio 支援接收流過濾的能力,同時在設計時考慮了網路通用加速方法 Accelerated RFS 的實現要求,可作為後續流規則相關配置方法的基礎能力。
RSS Context
當前 virtio 僅支援單個預設 RSS (Receive Side-Scaling) 配置,這無法滿足一些場景對佇列流量隔離等的需求,導致網路裝置流量管理不靈活的問題。針對此問題,高效能網路小組發起了 [PATCH v2] virtio-net: support the RSS context]() 提案,以支援 virtio 實現多個 RSS 配置上下文。該提案支援查詢裝置能力,修改、刪除、新增 RSS context等。
virtio-net + AF_XDP
高效能網路小組一直以來都在主導推進 virtio-net 對於 AF_XDP 的支援。2年多以來,我們已經解決了多個相關的基礎依賴問題。
目前這塊的工作取得了一些決定性的進展:Virtio Core 支援 dma premapped 的特性目前已經被合併進入了 Linux 6.6。這意味著, virtio-net 支援 AF_XDP 的最後一塊依賴被補齊了。我們會盡快整理後續 virtio-net 支援 AF_XDP 的 patch 提交到上游社群,完成這一工作。
注意:基於龍蜥 Alinux3 及 Alinux2 攜帶的 ANCK 核心都已經包含了 virtio-net 支援 AF_XDP 的特性。歡迎嘗試!
相關連結可移步龍蜥公眾號(OpenAnolis龍蜥)2023年9月14日相同推送檢視。
注:更多龍蜥 SIG 月度動態可點選 這裡檢視。
—— 完 ——
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2984024/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高效能網路SIG月度動態:virtio 動態中斷調節最佳化、多項核心網路缺陷修復
- 高效能網路SIG月度動態:virtio-net 支援動態中斷調節,SMC v2 協議增加新擴充套件協議套件
- 高效能網路 SIG 月度動態:長期投入得到業界認可,新增一位 virtio reviewerView
- 高效能網路SIG月度動態:virtio新裝置進入virtio規範、smc新特性IPC效能比tcp提升88%TCP
- 高效能網路SIG月度動態:SMC 與 IBM 就擴充套件協議達成一致,virtio 支援 XDP 新特性IBM套件協議
- 高效能儲存SIG月度動態:EROFS支援直接索引容器映象tar包等索引
- 高效能儲存SIG月度動態:DSMS開始適配Anolis OS、將在ANCK 5.10中支援ublk
- OpenCloudOS Kernel SIG 月度動態:釋出 OCK 6.6.30-4 版本,新增特性支援Cloud
- eBPF SIG年度動態: eBPF和Wasm深度融合、參與7場活動及2023展望 | 龍蜥 SIGeBPFASM
- Cloud Kernel SIG月度動態:釋出 ANCK 新版本及 Plugsched v1.2.0Cloud
- 高效能儲存SIG月度動態:ANCK 5.10正式支援ublk、erofs容器映象按需讀時延最佳化60%
- Cloud Kernel SIG月度動態:釋出 Anolis 8.8 映象、kABI 社群共建流程Cloud
- 報表工具中動態引數的靈活運用
- 商密SIG月度動態:檔案加密支援SM4演算法、Anolis 8.8將預設整合 | 龍蜥 SIG加密演算法
- 高效能儲存SIG月度動態:ublk完成POC、dsms-storage在Anolis OS上成功適配
- 遊戲平衡機制探究:動態難度調節的4條祕訣遊戲
- Cloud Kernel SIG 月度動態:釋出 ANCK 5.10-013 版本、完整支援 Intel SPR 處理器CloudIntel
- 資料剖析更靈活、更快捷,火山引擎 DataLeap 動態探查全面升級
- Java動態代理和反射機制Java反射
- 動態 SQL 和快取機制SQL快取
- 高效能儲存SIG月度動態:ANCK ublk完成POC測試,EROFS最佳化xattr後設資料開銷
- 配置高效能動態網站(例項)網站
- Elastic-Job:動態新增任務,支援動態分片AST
- WPF多語言支援:簡單靈活的動態切換,讓你的程式支援多國語言
- 基於 CGLIB 庫的動態代理機制CGLib
- 如何更換動態IP?
- MyBatis對動態SQL的支援MyBatisSQL
- 網路分流器|網路分流器|移動網際網路採集方案
- openGauss 動態資料脫敏機制
- 深入理解JDK動態代理機制JDK
- HDFS動態新增節點
- hadoop動態摘除節點Hadoop
- **Linux 配置系統網路(動態)**Linux
- Cloud Kernel SIG月度動態:釋出ANCK 5.10、4.19新版本,ABS新增倉庫構建功能Cloud
- BootStrap的動態模態框及靜態模態框boot
- 動態IPvps,選用動態IPvps的意義,使用動態IPvps的說明及連線操作
- iOS中動/靜態庫支援bitcode的問題iOS
- 【iOS】動態更換圖示iOS