高性能网络SIG月度动态:自研 IPPROTO_SMC 贡献 Linux 社区,virtio 增加多项优化

高性能网络 SIG(Special Interest Group) :在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络兴趣组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,结合软硬件一体化的思想,打造高性能网络协议栈,提升云计算时代数据中心应用的网络性能。

一、整体进展

本月高性能网络 SIG 的主要工作聚焦在 ANCK virtio 以及 SMC 上。

本月关键进展

1. ANCK 5.10 内核 virtio-net 新增支持设备状态统计、control vq timeout 和队列重置能力,并优化了控制通道性能。

2. SIG 将自研的 IPPROTO_SMC 方案贡献给上游社区,目前已经获取 Linux 社区认可。

二、ANCK 通用内核网络协议栈

修复

ANCK 5.10 修复 inet_diag() 中潜在数据竞争的问题 (RP3173),预计随着 017 版本发布。

三、SMC

本月 SIG 在 SMC 上的工作主要聚焦于推动 IPPROTO_SMC 方案进入上游主线以及缺陷修复。

IPPROTO_SMC

IPPROTO_SMC[1] 是 SIG 为 IP 协议族新增的一个协议类型。当用户创建 socket 时,IPPROTO_SMC 用来指示底层网络通信应该使用 SMC 协议,其和 IPPROTO_TCP/IPPROTO_UDP 同级。引入 IPPROTO_SMC 旨在提高 SMC 和 TCP 在功能上的一致性,使 SMC 回退到 TCP 协议后在功能路径上与 TCP 仍然保持一致。基于 IPPROTO_SMC,SMC 能够应用几乎所有为 INET 路径创建的 ebpf 功能,使得 SMC 可以使用 ebpf 非常细粒度的控制,并灵活地将 TCP 连接切换成 SMC 连接。此外,ANCK 还基于 IPPROTO_SMC 优化了 SMC 的回退性能,使其在回退到 TCP 的场景下性能和直接使用 TCP 的短连性能差距最差情况相差不超过 6%。

缺陷修复

SIG 本月修复了 SMC 引用计数泄漏[2]和 sk_{sndbuf|rcvbuf} [3]相关缺陷。

四、virtio

本月高性能网络 SIG 在 virtio 领域的工作主要聚焦于控制通道性能优化,支持 control vq timeout、设备统计计数和队列重置。SIG 已把这些特性贡献到了 Linux 上游社区,同时本月将这些特性都回合到了 ANCK,这些功能都将随 ANCK-017 发布。

控制通道性能优化

virtio-net 的 control vq 目前只能同时处理一个请求,这在很大程度上限制了控制通道的效率和灵活性。例如,NetDIM(网络中断调节)是一个现代网卡广泛支持的特性,其通过发送队列级的配置请求来提升性能。随着队列数量的增加,需要发送的配置请求数量也会相应增加。因此,请求发送的效率直接影响了 netdim 为 virtio-net 带来的性能提升,这对 virtio-net 控制通道提出了更高的性能要求。为了解决此问题,SIG 使用了更轻量的锁替换 control vq 曾使用的全局 netlink 锁,并引入了异步提交请求的机制,这些改进允许 control vq 同时处理多个请求,显著提升了 virtio-net 控制通道处理并发请求的性能,还帮助 virtio-net 基于 netdim 实现更佳的性能表现。

control vq timeout

虚拟机使用 virtio-net 网卡时,通常借助 control vq 来提交设备配置的请求。为了获取请求的处理结果,虚拟机需要轮询检查 control vq,直到接收到响应。然而,若设备一直未及时回应这些请求,虚拟机的 CPU 便会持续在高负荷下轮询,这种情况甚至可能导致整机完全 Hang 住。为了解决此问题,SIG 引入了 control vq timeout 机制:自驱动发送命令开始计时,如果在 timeout 超时时间内,设备仍未返回任何响应结果,驱动则认为该设备可能已经出现故障,进而标记驱动不应发送更多请求。该 timeout 值以 ANCK 内核模块参数的形式提供,默认值为 7 天。

设备统计计数

virtio-net 设备曾经无法获取后端设备的统计信息,这些信息对于用户来说,在分析和解决网络问题时至关重要,而用户只能通过云厂商自定义接口来获取某些信息。为了解决此问题,SIG 此前在 virtio 社区成功完成了 virtio-net 对device stats的支持。本月,SIG 也为 ANCK 正式支持了这项功能。这意味着用户现在可以通过用户空间 ethtool 命令直接获取 virtio-net 设备上的统计信息,为分析网络环境提供更多有价值的信息。

队列重置

队列重置功能允许虚拟机停止特定队列,回收并重新分配其内存资源,然后重新启用该队列。这一能力使得用户能够根据特定场景的需求,使用用户态 ethtool 工具调整虚拟机的队列尺寸 ,以优化时延性能表现。此外,在加载 XDP 程序时,驱动程序可以利用队列重置功能,清除所有接收队列中的旧缓冲区,以减少因预填充缓冲区格式不匹配导致的少量数据包丢失,确保数据传输的连续性和完整性。

相关链接:

[1][PATCH net-next v6 0/3] Introduce IPPROTO_SMC - D. Wythe

[2][PATCH net v2] net/smc: fix neighbour and rtable leak in smc_ib_find_route() - Wen Gu

[3][PATCH net] net/smc: avoid overwriting when adjusting sock bufsizes - Wen Gu

高性能网络 SIG 主页:

High Performance Network SIG - OpenAnolis龙蜥操作系统开源社区

注:更多龙蜥 SIG 月度动态可点击这里查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每天学会一个渗透测试工具】Nessus安装及使用指南

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 其他扫描工具: AWVS和Xray:应用漏洞扫描工具 fscan:虽然能扫主机,但比较老了…

01- ES6语法

1.ES6相关概念 1.1 什么是ES6 1.1.1 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。 ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 Ja…

Linux、Windows安全加固

为了减少系统被黑客入侵,对操作系统的安全加固是网络安全和主机安全必不可少的一部分。 一、Linux安全加固 1.不使用默认的ssh端口,修改默认ssh22端口号 sudo vim /etc/ssh/ssh_config 去掉#注释,修改端口号并保存 2.关闭不必要的系统服务…

日常学习记录

1、力扣sql 15题 2、八股 回顾java基础 3、sql网课还差一节

pip install 安装 torch cuda 11.8 cu118

默认安装,速度比较慢 pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 百度了一下,有推荐这么改的,速度还是慢,因为还是转到官网 pytorch.org pip install torch torchvisi…

数据库设计规范总结

数据库设计规范总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 数据库设计规范是指在设计数据库时应该遵循的一系列规则和标准,旨在提高数据库…

【ajax基础03】常用ajax请求方法和数据提交以及axios错误处理

一:请求方法 什么是请求方法: 浏览器对服务器资源,要执行的操作 常见请求方法如下 二:axios中应用 语法格式: method:为请求方法,默认情况下为get(获取数据) data:…

技术革新| 卓翼飞思受邀出席2024士兵智能装备与技术学术大会

6月14日,由中国兵器装备集团智元研究院/智元国家重点实验室、中国兵工学会主办的 “2024士兵智能装备与技术学术大会” 在杭州隆重召开。卓翼智能应邀出席本次大会,并发表了题为《新概念飞行器及多智能体集群仿真系统研究》的演讲报告。 本次大会以“智能…

Centos8.5安装mysql8.0

1.检查是否有安装mysql数据库(如果有mysql或者mariadb数据库,则卸载) [rootmyhost ~]# rpm -qa |grep mysql [rootmyhost ~]# rpm -qa | grep mariadb [rootmyhost ~]# ll /etc/my.cnf ls: 无法访问/etc/my.cnf: No such file or directory…

mumu 模拟器如何模拟指纹识别?

最近在帮朋友解决一些任务时,有些比较复杂的任务需要批量使用模拟器,但是模拟器存在一个缺点,就是缺少很多物理功能,比如说陀螺仪、温度传感器和生物识别模块等等,但是有些任务是需要这些功能的。没有办法,…

大模型日报2024-06-18

大模型日报 2024-06-18 大模型资讯 大模型产品 Olvy 3.0:AI加速客户反馈分析 摘要: Olvy 3.0推出AI自动监听和智能标签功能,通过Google Meet集成轻松提取洞察,贴近客户,激发同理心。 PlantIdentify-免费植物识别应用 摘要: PlantI…

Vue3、Element Plus使用v-for循环el-form表单进行校验

在开发中遇到了这样一个需求 有一个form是通过v-for生成出来的&#xff0c;并且数量不确定&#xff0c;每个表单中的字段都需要做校验&#xff0c;就将自己的解决方法记录了下来。 完整代码如下 <template><div class"for-form"><el-button type&quo…

不容小觑的“白纸黑字”:银行重空凭证的风险与防控

一、定义与重要性 定义&#xff1a; 银行重空凭证&#xff0c;也称为重要空白凭证&#xff0c;是银行专业术语&#xff0c;指银行印制的无面额、经银行或单位填写金额并签章后&#xff0c;即具有支取款项效力的空白凭证。 重要性&#xff1a; 它是银行资金支付的重要工具&a…

秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}

文章目录 引言复习&#xff08;单调队列优化DP&#xff09;——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 &#xff08;单调队列优化DP&#xff09…

华翰传媒集团横店影视基地盛大开业,汇剧视界APP震撼发布

2024年6月1日上午&#xff0c;横店影视华翰传媒集团携手腾烨影视隆、明艺影视重举办了横店影视基地的开业庆典。这一盛事不仅标志着华翰传媒集团在影视行业发展的重要里程碑&#xff0c;更彰显了其深耕影视产业、致力于打造高质量影视内容的决心与目标。 活动盛况空前&#xff…

企业中面试算法岗时会问什么pytorch问题?看这篇就够了!

如果要面试深度学习相关的岗位&#xff0c;JD上一般会明确要求要熟悉pytorch或tensorflow框架&#xff0c;那么会一般问什么相关问题呢&#xff1f; 文章目录 一. 基础知识与概念1.1 PyTorch与TensorFlow的主要区别是什么&#xff1f; 1.2 解释一下PyTorch中的Tensor是什么&…

虹软ArcSoft—真正离线免费的人脸识别SDK

虹软ArcSoft—真正离线免费的人脸识别SDK 高级功能收费 还是很好滴 人证核验功能是C/C的SDK&#xff0c;需要封装为C#&#xff0c;然后暴露为Restful API使用

Linux 网络总是断开问题

环境&#xff1a;华为欧拉 OpenEuler 24 LTS 版本 现象&#xff1a;配置网络后可以连接&#xff0c;但是使用一段时间后自动断开。 问题解决&#xff1a; 系统的 NetworkManager 与 network.service 冲突导致。 1. 关闭并禁用 NetworkManager systemctl stop NetworkManag…

Ardupilot开源代码之ExpressLRS性能实测方法

Ardupilot开源代码之ExpressLRS性能实测方法 1. 源由2. 测试效果3. 测试配置4. 总结5. 参考资料6. 补充 1. 源由 之前一直在讨论ExpressLRS性能的问题&#xff0c;有理论、模拟、实测。 始终缺乏完整的同一次测试的测试数据集&#xff0c;本章节将介绍如何在Ardupilot上进行获…

半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割&#xff1a;基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…