Linux 最新资讯 20260625——Linux Cache Aware Scheduling 扩展以进一步提升性能:MySQL 性能最高提升 360%
Linux Cache Aware Scheduling 扩展以进一步提升性能:MySQL 性能最高提升 360% 缓存感知调度(Cache Aware Scheduling) 是今年合入 Linux 的最令人兴奋的内核创新之一。虽然它已于上周最终合入 Linux 7.2,但今天的新补丁系列已开始着手扩展缓存感知调度,并展示出令人振奋的性能提升。 缓存感知调度能够帮助 Linux 在具备多缓存域的现代 CPU 上提升性能,因为调度器会尽力确保共享数据的任务被放置在相同的最后一级缓存(LLC)域中。其最终结果是优化缓存局部性,减少缓存未命中/抖动。 当前,缓存感知调度基于一个以 LLC 为中心的任务聚合模型,该模型对于能完全塞入单个 LLC 域的工作负载表现良好。但当调度器无法将聚合扩展到更高级别的域,且局部性无法有效保持时,其效果就不够理想。 Hygon 今天提交了补丁,将缓存感知调度扩展为拓扑感知的任务聚合,使其变得层次化,并能根据工作负载在调度域间动态扩展/收缩。这些补丁看起来相当不错,能在不同工作负载大小和系统拓扑下增强缓存感知调度。 这些补丁的基准测试数据显示:Hackbench 提升高达 49%,Schbench 提升高达 20%,MySQL 提升甚至达到 360%: 有关基准测试结果和这些新 CAS 补丁的更多详情,请参阅内核邮件列表。 MGLRU改进为Linux 7.2带来显著收益:MongoDB吞吐量提升30%~100% 大量内存管理(MM)相关的改进近期已合入 Linux 7.2 内核的 Git 仓库。与大多数内核周期一样,一些底层改进能在不同场景中带来可观的效率提升和性能优化。 在 Linux 7.2 内核的 MM 特性变更中,我认为最值得关注的内容包括: - 改进 MGLRU 的回收循环与脏回写处理。该补丁系列使某些工作负载(如运行 YCSB 的 MongoDB)性能提升高达 30%。在慢速 I/O 场景下,MongoDB 等基准测试甚至可能获得 100% 的增益,而 30% 的提升则是在 NVMe 存储上测得的。来自该补丁系列的基准测试结果显示,MGLRU 的回收循环和脏 folio 处理改进相当显著。其他工作负载能否从中受益,值得关注。 - 通过批量释放连续的 order-0 页面,更高效地实现 order-0 页面的快速释放。这进而解决了去年在 vmalloc 性能中观察到的某些性能回退问题。该改进主要有利于 vfree() 以及冻结页面的释放。 - 支持在不丢失当前状态的情况下暂停和恢复 DAMON。 - 扩展 DAMON,使其不仅能监控访问模式,还能监控通用数据属性。 - 通过移除无效的栈和页表标记,加速内核地址消毒器(KASAN)。 - 收紧 mmap_miss 命中计数,显著减少同步 mmap 预读 I/O,并降低稀疏随机及跨步内存访问工作负载的执行时间和读取的数据量(GB 级别)。该改进已展现出明显的优化效果。 - 统一匿名和共享内存交换到 folio 中的分配与计费,以提供更好的同步和更强的性能。 关于 Linux 7.2 中众多 MM 变更的更多细节,可参见已合入 Git 的主 MM 拉取请求。