据外媒Phoronix报道,AMD近日提交的一个补丁可以进一步调整Linux内核的调度程序围绕NUMA的不平衡状态,对于某些工作负载,该调度程序的调整补丁可显著改善基于AMD禅宗的系统性能,甚至在英特尔至强服务器上也可提供帮助。
补丁的内容主要为:当find_idlest_group()函数中允许NUMA不平衡时,公平调度程序的更改正在考虑CPU亲和性.AMD工程师K Prateek Nayak解释说:
对于每个插槽包含多个LLC的系统,例如AMD禅系统,用户希望将需要带宽的应用程序分布在多个LLC上.Stream就是这样一种具有代表性的工作负载,其中通过限制每个LLC的一个流线程来获得最佳性能。
为了确保这一点,已知用户将任务固定到指定的CPU子集,每个有限责任公司由一个CPU组成,同时运行此类需要带宽的任务。
我们可以通过检查本地组中允许的CPU数量是否少于本地组中运行的任务数来检测并避免这种堆积,并使用此信息将任务分散到下一个套接字中(毕竟,此慢速路径的目标是在初始放置期间找到最空闲的组和最空闲的CPU。)
流内存基准测试用例结果显示:对当前的Linux内核来说,此补丁可使流受益36 ~ 44%,性能提高约40%:
有趣的是,AMD主导的优化不仅能让基于AMD禅宗的处理器受益,也可以使多插槽服务器的英特尔CPU受益。测试显示,对英特尔至强可扩展“冰湖”服务器上的流,其性能提高了54 ~ 82%。
而且这个内核补丁<强>只有几行代码:
目前该补丁已排入sched/核心队列,如果没有其他突发情况,应该会在Linux 5.20中引入。
更多技术细节可在补丁邮件中阅读。
0 留言