微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

英特尔提交最新 Linux 性能补丁,有效减少跨 CPU 唤醒次数

由英特尔发起的最新内核性能补丁改进了 Linux 内核的公平调度程序代码,这个补丁系列的重点是避免不必要的跨 cpu 唤醒,可增强搭载高核心数 cpu 的 Linux 系统性能

该 Linux 内核调度补丁主要是将短任务放在当前 cpu 上,以避免跨 cpu 唤醒。Intel 工程师陈宇在补丁邮件中解释道:

在高负载系统中,短期任务频繁跨 cpu 唤醒可能会成为性能问题的主要来源,因为它会带来频繁的上下文切换。

在该补丁生效后,如果唤醒者和被唤醒者都是短期任务,则通过仅将唤醒者放置在唤醒 cpu 上,来抑制跨 cpu 唤醒。

该策略仅在系统繁忙时生效,在还有空闲cpu的时候禁止空闲 cpu 进行扫描是不合理的。

代码也得到了 AMD 工程师和其他利益相关者的测试/反馈,AMD 和英特尔平台都受益于这系列补丁。

据外媒 Phoronix 介绍,这些补丁特别有利于 AMD EPYC 和英特尔至强服务器处理器,以及其他具有高内核数的 HEDT 系统,具体的性能改进程度则因工作负载和系统繁忙程度而异。

总体而言,在 Intel Xeon 2 x 56C 机器上测试时,该补丁在某些超载情况下对性能有提高,比如 will-it-scale,netperf。但对 schbench、hackbench、tbench 和使用商业 RDBMS 的 OLTP 工作负载没有明显影响

根据 Prateek 对 Zen3 的测试,大多数基准测试结果都取得了小的优化,与 sched:tip 相当。SpecJBB Critical-jOps 有所改善,而 Max-jOPS 受到的影响很小,但可能在预期范围内。ycsb-mongodb 在 NPS1 模式下有小幅提升。

当客户端数量等于 cpu 时,在 Rome 2 x 64C 机器上可观察到 netperf(localhost) 的吞吐量改进。

目前该公平调度性能补丁进行了第六次修订,更新了检查唤醒和选择唤醒 cpu 功能,以避免可能的 Redis 性能回归。

说实话,性能提升并不是十分明显,且适用范围较小。但蚊子腿也是肉,就看 LIinus 是否会合并这系列补丁。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐