温馨提示×

CentOS Swap开启会影响吗

小樊
42
2026-08-18 10:03:42
栏目: 智能运维

简短结论:
CentOS(以及大多数 Linux) 里,开启 Swap 本身不会“坏”,但会影响性能和使用体验,是否开启要看你的服务器用途和内存情况。


一、开启 Swap 会有什么影响?

✅ 正面影响(好处)

  1. 防止内存耗尽导致进程被 OOM Kill
    • 当物理内存不够时,系统会把不常用的内存页换到 Swap,避免程序直接崩溃。
  2. 提高系统稳定性(尤其是小内存机器)
    • 1–2G 内存的服务器,不开 Swap 很容易卡死。
  3. 适合突发内存场景
    • 编译、备份、日志处理等短时间内存需求大的情况。

❌ 负面影响(代价)

  1. 性能下降(明显)
    • Swap 在磁盘上,速度比内存慢 几十到上百倍
    • 一旦频繁使用 Swap(swap thrashing),系统会明显卡顿
  2. 磁盘 IO 压力增大
    • 机械盘尤其明显
    • 云服务器高 IO 可能触发限速
  3. 数据库 / 高并发服务不友好
    • MySQL、Redis、ES 等 强烈不建议频繁使用 Swap

二、CentOS 中是否该开启 Swap?

✅ 建议开启的情况

  • 内存 ≤ 2G
  • 桌面 / 开发 / 测试环境
  • 非实时、非高并发服务
  • 云服务器(防止 OOM)

❌ 不建议开启 / 要谨慎的情况

  • 内存 ≥ 8G 且负载稳定
  • 数据库服务器(MySQL / PostgreSQL)
  • Redis、Kafka、Elasticsearch
  • 对延迟极其敏感的服务

三、Swap 开启 ≠ 一定会用

你可以通过 swappiness 控制系统“多积极使用 Swap”。

查看当前 swappiness

cat /proc/sys/vm/swappiness

默认一般是 30(CentOS 7/8)

推荐设置

场景 swappiness
数据库服务器 1–10
普通服务器 10–30
小内存机器 30–60

临时修改

sysctl vm.swappiness=10

永久修改

vim /etc/sysctl.conf

添加:

vm.swappiness=10

生效:

sysctl -p

四、如何判断 Swap 是否“影响性能”?

看 Swap 是否被频繁使用

free -h
vmstat 1

重点看:

  • si / so 是否长期不为 0
  • swap used 是否持续增长

如果 si/so 一直有值 → 已经在影响性能了。


五、总结一句话

Swap 是“保命用的”,不是“加速用的”。
开启不会坏,但 用多了一定慢

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 内存大小
  • 跑的是什么服务(MySQL / Docker / 网站 / 桌面)

我可以给你一个 最合适的 Swap + swappiness 配置方案

0