
一个在夜间发布的补丁系列,是内核更大规模重设计的部分,旨在引入一个”交换表”,有望为 Linux 内核带来显著的现实性能提升。
腾讯的 Kairui Song 发布了引入交换表和将其作为内核交换缓存的补丁的初始阶段。这源于 Kairui 在 LSF/MM/BPF 讨论中提出的想法,即在 Linux 内核中集成交换缓存、交换映射和交换分配器功能。这次交换代码的重设计旨在更具未来适应性,并比当前代码使用更少的内存,同时提供更高的性能。
人们一直在抱怨 SWAP 管理子系统。虽然添加了许多增量解决方案和优化,但这导致了其他许多问题,并使实现新功能变得更加困难。一个原因是当前设计几乎具有最小的内存使用(1 字节交换映射),性能可接受,因此很难通过增量更改来超越它。但实际上,随着更多代码和功能的添加,已经有很多重复的部分。因此,我建议从不同角度来彻底改革整个 SWAP 槽管理,就像以下对 SWAP 分配器的改进工作一样。
昨晚发布了一组第一阶段补丁,用于引入所提议的交换表基础设施,并将其用作交换缓存后端。它已经显示出非常不错的结果:
第一阶段包含 9 个补丁,引入了交换表基础设施,并将其用作交换缓存后端。通过这样做,我们在基准测试和工作负载测试中获得了高达 5-20%的性能提升,包括吞吐量、每秒请求数或构建时间。
…
测试表明,第一阶段在许多实际工作负载中,从 8 核/1GB ARM 机器到 48 核 96 线程/128GB x86_64 服务器,都显著提升了性能。
一些相当不错的性能结果,通过虚拟机可扩展性基准测试显示在大多数情况下提高了 20%以上,Linux 内核构建时间提高了几个百分点,Redis/Valkey 内存数据库的吞吐量提高了约 6~7%。
这些交换表补丁的启动非常好。希望这项工作最终被认为可以合并到主线 Linux 内核中,其余的交换表补丁系列也尽快实施。
转自 Linux Primed For Significant Performance Gains With Kernel Swap Code Overhaul – Phoronix
Linuxeden开源社区