客户端
游戏
无障碍

0

评论

收藏

2

手机看

微信扫一扫,随时随地看

专家称:Linux 内核微调可减少数据中心 30% 能耗

硬件性能在不断提升,但定期回顾和检查代码仍然很有价值。有时你可能会发现一个小小的调整就能带来意想不到的效率提升或性能改进。
滑铁卢大学 Cheriton 计算机科学学院的研究人员就实现了这样的突破。他们仅用约 30 行代码对 Linux 内核的网络协议栈进行修改,就可能使数据中心能耗降低高达 30%。
这些改动已作为 Linux 6.13 内核版本的一部分发布。
该项目源于研究人员试图解释为什么用户态网络方案相比内核态方案能获得如此显著的性能提升。Martin Karsten 教授在接受采访时表示。
传统上,Linux 网络是由中断驱动的。当新数据通过网络到达时,会触发系统中断,CPU 核心会暂停当前任务来处理数据包。这种方式适合多用户同时运行任务的环境。
"在传统系统中,操作系统是多用户活动的协调者,"Karsten 说。"在服务器上,很多用户同时登录执行各种小任务,操作系统需要持续关注每个用户并确保公平性。"
如今情况已大不相同。许多现代吞吐量导向的工作负载(如反向代理或缓存)可能消耗相当于多个传统系统的资源。对于这类应用,Karsten 表示,让应用在准备好处理更多工作时主动轮询网络可能更有效率。
通过减少中断请求 (IRQ),主机 CPU 可以将更多时间用于数据处理,而不是等待尚未准备好的数据包。
这在用户空间已经实现,但需要一些工作。Karsten 补充说,你需要知道你的应用是否会从这种方法中受益,然后去实现它。
持续轮询网络也会带来额外开销。"当流量较低时,你仍在消耗 CPU 核心资源,这对能耗来说极其低效,"他补充道。
基于这些认识,研究团队寻找一种兼顾两者的方法。他们开发了一个引入自适应轮询的内核补丁。在高流量期间,主机可以在处理完上一批数据后立即轮询网络获取新数据。当流量降低且没有新数据需要处理时,系统可以回到中断驱动模式,从而节省能源。更重要的是,由于这些都在内核中处理,所以基本上是自动的。
研究人员在 2023 年发表的论文中首次展示了这项功能的基础实现。此时,Karsten 意识到这项工作的影响可能超出研究论文的范畴,于是开始与 Linux 内核开发者和 Fastly 首席技术官 Joe Damato 合作,将这个功能整合到内核中。
据 Karsten 称,这个补丁带来的性能提升可能相当显著。早期测试显示,它可以在不影响尾部延迟的情况下将吞吐量提高多达 45%。同时,在相同负载下,通过减少之前在中断处理网络开销上浪费的资源,可以减少高达 30% 的能耗。
当然,这是最理想的情况。并非所有应用都能看到这样的性能提升。Karsten 表示,吞吐量密集型应用应该能获得最大收益。"有些应用如 Memcached 除了网络通信外几乎不做其他事情。"
即使平均节省效果较低,考虑到所有运行 Linux 的设备,这仍是相当可观的能源节省。
不过这些节省不会立即实现,因为要等到包含这些修改的内核版本进入企业客户青睐的长期支持 (LTS) 版本可能需要一段时间。
遗憾的是,即使内核在数据中心得到广泛应用,它可能对 AI 集群帮助不大。这是因为在 AI 和高性能计算应用中,远程直接内存访问 (RDMA) 技术一直是首选。
NVIDIA 网络部门高级副总裁 Gilad Shainer 表示:"这种方法消除了网络数据处理中对 CPU 周期的需求,是高性能互连技术的基础。"
尽管如此,对 Karsten 来说,这个补丁凸显了重新审视软件栈的重要性,不仅是内核或应用层面,还包括中间件、库和其他所有组件。"我认为有很多效率低下的问题我们可以消除,而且时机即将到来,"他说。
"过去没人在这上面花钱,因为明年硬件速度会翻倍,何必担心?"他补充道。"但如果这种情况停止了,我们最好好好看看软件。"
这正是 Karsten 计划未来研究的重点方向。
免责声明:本内容来自腾讯平台创作者,不代表腾讯新闻或腾讯网的观点和立场。
举报
评论 0文明上网理性发言,请遵守《新闻评论服务协议》
请先登录后发表评论~
查看全部0条评论
首页
刷新
反馈
顶部