温馨提示×

centos swapper会影响性能吗

小樊
36
2026-10-17 19:11:40
栏目: 智能运维

在 CentOS(以及一般 Linux 系统)里,swapper(swap 机制)本身不一定会直接影响性能,但在某些情况下会明显影响性能。

下面分情况说明:


1. 什么是 swapper / swap

  • swapper 通常指内核的 swap 子系统(以及早期的 swapper 进程,PID 0)
  • 作用是:
    当 物理内存不足 时,把不常用的内存页换到磁盘(swap 分区或 swap 文件)
  • 目的是 避免 OOM(内存耗尽)导致进程被 kill

2. 什么时候“不影响性能”

以下情况基本没问题:

✅ 内存充足,swap 几乎不被使用
✅ 只是保留了 swap 分区,但很少发生 swap out/in
✅ swap 仅用于休眠(hibernate)

可以用命令查看:

free -h
swapon -s
vmstat 1

如果 si/so(swap in/out)长期是 0,基本无影响。


3. 什么时候“会影响性能”

❌ 1)频繁 swap(swap thrashing)

当:

  • 物理内存不够
  • 系统不断把内存页换入换出

后果:

  • 磁盘 IO 暴涨
  • CPU 等待 IO(wa 升高)
  • 应用响应变慢,甚至“卡死”

典型表现:

top
# wa 很高
# si/so 不为 0

❌ 2)swap 在慢磁盘上

  • 在 HDD 上比 SSD 慢很多
  • 在云服务器上(网络磁盘)更慢

❌ 3)swappiness 设置不合理

CentOS 默认:

cat /proc/sys/vm/swappiness
# 通常是 30
  • 值越大 → 越容易用 swap
  • 对数据库、Redis 等服务,太高会拖慢性能

常见优化:

# 临时
sysctl vm.swappiness=10

# 永久
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

4. 是否应该关闭 swap?

不建议盲目关闭

  • 关闭 swap 风险:
    • 内存突发占用 → 直接 OOM kill
    • 某些程序依赖 swap 行为

更合理做法

  • 加内存(最根本)
  • 降低 swappiness
  • 把 swap 放 SSD
  • 对关键服务限制内存

5. 总结一句话

swapper 本身不慢,慢的是“内存不够导致的频繁 swap”

如果你愿意,可以贴一下:

  • free -h
  • swapon -s
  • top 或 vmstat 1 的输出

我可以帮你判断当前 CentOS 是否受 swap 影响。

0 踩