温馨提示×

debian swapper缓什么数据

小樊
33
2026-09-13 09:45:22
栏目: 智能运维

在 Debian(以及其它 Linux 发行版)里,swapper / swap 分区(或 swap 文件) 主要用来“缓”的是内存(RAM)里暂时不用的数据,更准确的说是:

1. 换出(swap out)的内容

当物理内存不足,或内核认为某些内存“不太重要/很久没用”时,会把以下内容放到 swap 中:

  • 匿名内存(anonymous memory)
    • 进程堆(heap)
    • 栈(stack)
    • 使用 malloc / new 分配但未映射到文件的内存
    • 进程的匿名页(没有对应磁盘文件)
  • 未映射文件的内存页
    • 不是通过 mmap 文件映射得到的内存
  • 部分不活跃的内存页
    • 长时间没被访问的页面
    • 可被回收但当前还留在内存里的页

2. 不会(或基本不会)进 swap 的

  • 文件缓存(page cache)
    • 读文件时的缓存
    • 一般直接回收,不需要 swap
  • 内存映射文件(mmap 文件)
    • 有磁盘文件做后盾
    • 需要时直接从文件读回
  • 内核关键数据
    • 很多内核结构不能 swap

3. 简单理解

swap 缓的是“内存里用不上但还不能丢的数据”

它不是“缓存硬盘数据”,而是把内存数据临时搬到磁盘,腾出 RAM 给更急需的进程用

4. Debian 中常见例子

  • 开很多浏览器标签,内存不够 → 后台标签进程内存被 swap
  • 长时间不用的服务 → 内存被换出
  • 系统空闲但之前占过内存 → 部分内存进 swap

5. 一句话总结

Debian 的 swapper 缓的是“进程使用的、暂时不活跃的内存数据”,用来在物理内存不足时扩展可用内存。

如果你愿意,我也可以讲:

  • swap 和 page cache 的区别
  • swappiness 参数怎么调
  • Debian 用什么工具看 swap 使用情况

0