Andrew Morton 早些时候发布了所有的内存管理补丁,随后 Linus Torvalds 将其合并到 Linux 7.0 中,这些补丁主要围绕 Linux 内核的性能改进展开。
🔹 引入了对 Zram 的压缩数据回写支持,有助于节省CPU功耗,尤其在笔记本电脑上能提升能效。之前不够理想的未压缩回写方式,现在已被更优的压缩数据回写方式取代。
🔹 为大页清除连续的页范围,对于 2MB 页以及更大页大小的请求缺页都能带来显著改善。
🔹 通过两种方式改进了当前的非连续清理方法,以连续的方式清理页面以及在所有可使用的地方通过 clear_pages() 进行批量清理。
🔹 连续的方式清理页面能让我们更好地利用硬件预取器,而批量清理能够向处理器告知实际范围。在特定指令支持的情况下,处理器可以基于此进行优化,因为它看到的是一个更大的操作单元,而非一连串的 8 字节存储或一连串的 4KB 页面。
🔹 加速巨型页框分配,通过避免不必要的工作,极大地加快了巨型页框的分配速度。作为参考,120 个 1G 页框的分配时间从 3.605 秒降至仅 0.431 秒。
🔹 统一换入使用,并移除了一些性能不佳的旧交换代码。这些清理和改进使 Redis 基准测试的速度提升了 20%。
🔹 扩展了 PT_RECLAIM 的支持范围,使其涵盖了包括 Alpha、龙芯、MIPS、Parisc 和 UM。
💭 这一系列针对内存管理底层的优化和代码重构,大幅缩短了特定任务的处理时间,为不同架构的设备带来了更出色的性能表现。
#内存管理 #Linux内核 #Linux