专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
51好读  ›  专栏  ›  程序猿

仅改30行Linux代码,立马省电30%?滑铁卢大学团队“神补丁”,已被Linux 6.13并入!

程序猿  · 公众号  · 程序员  · 2025-05-19 22:11

正文

请到「今天看啥」查看全文


电力焦虑。

那么问题来了:这些电到底花在哪儿了?

加拿大 滑铁卢大学的研究者发现,仅仅是在网络处理这个“看起来不起眼”的环节,就存在巨大的优化空间。


2、“主动轮询”+“智能切换”,巧妙应对流量波动

要理解这项优化,我们得先了解一点网络栈的“潜规则”。 当服务器收到一个新的网络数据包时,Linux 内核的做法是:立刻发起一个中断请求(IRQ),强行打断 CPU 当前正在执行的任务,转去处理这个包。

乍一看没问题,响应快嘛。但问题在于,这种频繁的“打断—处理—返回”的过程,会导致 CPU 缓存失效,执行效率变低,而且非常耗电。用滑铁卢大学 Cheriton 计算机学院教授 Martin Karsten 的比喻来说:这就像在一个流水线上,一旦有新任务就有人大声喊停,所有人都得停下手中的事赶去处理,反复打断反而影响整体效率。

那有没有可能不被动等待中断,而是“我闲下来自己去看看有没有任务”?而这,正是 Martin Karsten 带领的研究团队 想出的 解决方案。 他们与 内容分发网络公司 Fastly 的首席工程师 Joe Damato 合作,开发出了一段约 30 行的代码,用于改进 Linux 网络流量的处理机制 其核心思想是:







请到「今天看啥」查看全文