← 回總覽

腾讯工程师重构 Linux 内核 Swap 子系统深度解析

📅 2026-04-03 08:46 腾讯云开发者 软件编程 2 分鐘 1514 字 評分: 93
Linux 内核 内存管理 Swap 子系统 TencentOS 性能优化
📌 一句话摘要 本文深度解析了腾讯内核工程师 Kairui Song 主导的 Linux 内核 Swap 子系统重构工程,涵盖了引入 swap table 替代 XArray、移除 swap map 以及探索虚拟 Swap 空间等核心技术演进。 📝 详细摘要 文章系统性地回顾了 Linux 内核 Swap 子系统近两年的重大变革。由于历史原因,Swap 子系统代码极其复杂,腾讯工程师 Kairui Song 通过引入 swap table 结构(已于 Linux 6.18 合并),成功替代了原有的 XArray,实现了 5%-20% 的性能提升。随后在 Linux 7.0/7.1 中进一步

📌 一句话摘要

本文深度解析了腾讯内核工程师 Kairui Song 主导的 Linux 内核 Swap 子系统重构工程,涵盖了引入 swap table 替代 XArray、移除 swap map 以及探索虚拟 Swap 空间等核心技术演进。

📝 详细摘要

文章系统性地回顾了 Linux 内核 Swap 子系统近两年的重大变革。由于历史原因,Swap 子系统代码极其复杂,腾讯工程师 Kairui Song 通过引入 swap table 结构(已于 Linux 6.18 合并),成功替代了原有的 XArray,实现了 5%-20% 的性能提升。随后在 Linux 7.0/7.1 中进一步推动移除 swap map,将引用计数整合进 swap table,节省了约 30% 的元数据内存开销。文章还深入探讨了社区关于「虚拟 Swap 空间」的两种方案碰撞(Meta 的 swp_desc 与腾讯/Google 的 Ghost Swapfile),并介绍了 MGLRU 特性的最新优化进展,展示了大规模生产环境对内核底层优化的驱动作用。

💡 主要观点

- 引入 Swap Table 显著优化性能与可扩展性 通过将 Swap cache 管理局部化到 cluster 级别,用简单的 C 数组(swap table)替代复杂的 XArray,减少了锁竞争并提升了 5%-20% 的吞吐量。

移除 Swap Map 实现元数据管理的精简 将原本独立的 swap map 引用计数功能整合进 swap table 的条目中,消除了冗余的元数据维护,使 Swap 子系统节省了约 30% 的内存开销。
统一分配路径并移除 swap cgroup 静态数组 重构匿名页与共享内存的换出流程,将 memcg 信息直接整合进 swap table,解决了压力场景下的内存抖动问题并显著节省内存。
探索虚拟 Swap 空间以解决 zswap 与设备绑定痛点 针对 zswap 必须预分配物理槽位的局限,提出了 Dynamic Ghost Swapfile 等虚拟化方案,使 Swap 空间不再受制于静态物理结构。

💬 文章金句

- Linux 内核的 Swap 子系统自诞生以来,数十年间代码复杂度持续累积,逐渐成为内存管理子系统中公认的复杂地带。

  • swap table 的引入从根本上替代了沿用多年的 XArray 结构,带来 5%~20% 的性能提升;swap map 的移除进一步统一了 Swap 元数据管理,节省约 30% 的元数据内存开销。
  • 将整个 Swap 子系统重新构建于更为清晰、高效的数据结构之上的宏大目标,正逐步从设想变为现实。
  • 利用 Xarray 构建动态大小的虚拟 swap 文件,使 swap 空间的边界不再受制于预先分配的静态结构。

📊 文章信息

AI 评分:93

来源:腾讯云开发者

作者:腾讯云开发者

分类:软件编程

语言:中文

阅读时间:39 分钟

字数:9750

标签: Linux 内核, 内存管理, Swap 子系统, TencentOS, 性能优化

阅读完整文章

查看原文 → 發佈: 2026-04-03 08:46:00 收錄: 2026-04-03 12:00:45

🤖 問 AI

針對這篇文章提問,AI 會根據文章內容回答。按 Ctrl+Enter 送出。