温馨提示×

centos swapper为何被使用

小樊
44
2026-09-21 10:32:50
栏目: 智能运维

在 CentOS(以及其它 Linux 发行版)中,swapper(swap 空间)被使用的原因主要和内存管理、系统稳定性、性能平衡有关。下面从原理到实际场景说明。


一、什么是 swapper / swap

  • swap 是磁盘上的一块空间(分区或文件)
  • 当物理内存(RAM)不足时,内核把不常用的内存页移到 swap
  • 这个机制由 Linux 内核的 swapper 进程(pid 0) 管理

CentOS 中常见形式:

  • swap 分区
  • swap 文件(/swapfile

二、CentOS 为什么会使用 swapper

1️⃣ 物理内存不足(最常见原因)

当:

  • 运行进程太多
  • 某个程序占用内存暴涨
  • 突发流量导致内存压力

内核会:

把“冷内存”换出到 swap,腾出 RAM 给更急需的进程

否则:

  • 触发 OOM Killer
  • 直接杀进程甚至系统卡死

✅ swap 是保命机制


2️⃣ 空闲内存的再利用(主动优化)

Linux 不会让 RAM 闲着:

  • 文件缓存(page cache)会占用大量内存
  • 长时间不用的匿名内存可能被换出

即使内存“看起来够”,也可能使用少量 swap


3️⃣ 系统休眠(hibernate)

如果启用:

  • pm-hibernate
  • CentOS 服务器一般不启用

需要 swap ≥ 内存大小


4️⃣ 内核参数导致“提前 swap”

常见参数:

cat /proc/sys/vm/swappiness
  • CentOS 默认:swappiness=30
  • 值越大 → 越倾向使用 swap

可调:

sysctl vm.swappiness=10

三、如何判断 CentOS 是否在使用 swap

free -h
swapon -s
top

关注:

  • Swap: used > 0
  • si / so(swap in/out)是否持续不为 0

四、swap 使用是否危险?

✅ 正常情况

  • 少量 swap
  • si/so 很低
  • 系统响应正常

❌ 异常情况

  • swap 持续大幅增长
  • si/so 很高(频繁换入换出)
  • 系统变卡(swap thrashing)

说明:内存真的不够


五、CentOS 中该不该用 swap?

场景 建议
物理服务器 保留 swap(防 OOM)
云服务器 小 swap(1–2G)
数据库 尽量不用 swap
容器环境 看宿主机策略

六、总结一句话

CentOS 使用 swapper,是为了在内存不足或内存调度优化时,用磁盘换取系统稳定性和可用性。

如果你愿意,我可以帮你:

  • 分析 free / top 输出
  • 判断是否该加内存还是调 swappiness
  • 教你创建或关闭 CentOS swap

0