查看原文
其他

6行代码的补丁优化Linux 5.20,Stream性能提升40%!

出品 | OSC开源社区(ID:oschina2013)

据外媒 Phoronix 报道 ,AMD 近日提交的一个补丁可以进一步调整 Linux 内核的调度程序围绕 NUMA 的不平衡状态,对于某些工作负载,该调度程序的调整补丁可显著改善基于 AMD Zen 的系统性能,甚至在 Intel Xeon 服务器上也可提供帮助。

补丁的内容主要为:当 find_idlest_group () 函数中允许 NUMA 不平衡时,公平调度程序的更改正在考虑 CPU 亲和性。AMD 工程师 K Prateek Nayak 解释说:

对于每个插槽包含多个 LLC 的系统,例如 AMD Zen 系统,用户希望将需要带宽的应用程序分布在多个 LLC 上。Stream 就是这样一种具有代表性的工作负载,其中通过限制每个 LLC 一个流线程来获得最佳性能。

为了确保这一点,已知用户将任务固定到指定的 CPU 子集,每个 LLC 由一个 CPU 组成,同时运行此类需要带宽的任务。

我们可以通过检查本地组中允许的 CPU 数量是否少于本地组中运行的任务数来检测并避免这种堆积,并使用此信息将任务分散到下一个套接字中(毕竟,此慢速路径的目标是在初始放置期间找到最空闲的组和最空闲的 CPU。)

Stream 内存基准测试用例结果显示:对当前的 Linux 内核来说,此补丁可使 Stream 受益 36~44%,性能提高约 40% :

有趣的是,AMD 主导的优化不仅能让基于 AMD Zen 的处理器受益,也可以使多插槽服务器的 Intel CPU 受益。测试显示,对英特尔至强可扩展 “Ice Lake” 服务器上的 Stream,其性能提高了 54~82%。

而且这个内核补丁只有几行代码:

目前该补丁已排入 sched/core 队列,如果没有其他突发情况,应该会在 Linux 5.20 中引入。

sched/core 队列:https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=sched/core

更多技术细节可在补丁邮件中阅读:https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=sched/core&id=f5b2eeb49991047f8f64785e7a7857d6f219d574

相关链接:https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.20-AMD-NUMA-Imbalance

推荐阅读



Deno开发者开源“下一代Web框架”,网友:平平无奇

将RMS逼上梁山,但它还为开源贡献了一个重要协议

新手提交一个PR,却创造了一项世界纪录


觉得不错,请点个在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存