在 Debian(以及其它 Linux 发行版)里,swapper / swap 分区(或 swap 文件) 主要用来“缓”的是内存(RAM)里暂时不用的数据,更准确的说是:
1. 换出(swap out)的内容
当物理内存不足,或内核认为某些内存“不太重要/很久没用”时,会把以下内容放到 swap 中:
- 匿名内存(anonymous memory)
- 进程堆(heap)
- 栈(stack)
- 使用
malloc / new 分配但未映射到文件的内存
- 进程的匿名页(没有对应磁盘文件)
- 未映射文件的内存页
- 部分不活跃的内存页
- 长时间没被访问的页面
- 可被回收但当前还留在内存里的页
2. 不会(或基本不会)进 swap 的
- 文件缓存(page cache)
- 内存映射文件(mmap 文件)
- 内核关键数据
3. 简单理解
swap 缓的是“内存里用不上但还不能丢的数据”
它不是“缓存硬盘数据”,而是把内存数据临时搬到磁盘,腾出 RAM 给更急需的进程用。
4. Debian 中常见例子
- 开很多浏览器标签,内存不够 → 后台标签进程内存被 swap
- 长时间不用的服务 → 内存被换出
- 系统空闲但之前占过内存 → 部分内存进 swap
5. 一句话总结
Debian 的 swapper 缓的是“进程使用的、暂时不活跃的内存数据”,用来在物理内存不足时扩展可用内存。
如果你愿意,我也可以讲:
- swap 和 page cache 的区别
- swappiness 参数怎么调
- Debian 用什么工具看 swap 使用情况