温馨提示×

CentOS Swap能否直接关闭

小樊
49
2026-08-18 09:41:40
栏目: 智能运维

简短结论:可以关闭,但不建议在生产环境直接贸然关闭,尤其是内存较小的机器。

下面分情况说明。


一、CentOS 能否直接关闭 Swap?

可以关闭,CentOS 支持动态关闭 swap,不需要重启系统。

关闭方式有两种:

1️⃣ 临时关闭(重启后失效)

swapoff -a

查看是否关闭:

free -h
swapon -s

2️⃣ 永久关闭(推荐做法)

编辑 /etc/fstab

vi /etc/fstab

注释或删除 swap 相关行,例如:

# /dev/mapper/centos-swap swap swap defaults 0 0

然后执行:

swapoff -a

✅ 这样重启后也不会再启用 swap。


二、关闭 Swap 前的注意事项(非常重要)

✅ 可以关闭的情况

  • ✅ 物理内存 ≥ 8GB,且业务内存使用稳定
  • ✅ 数据库(如 MySQL / ES)明确要求关闭 swap
  • ✅ 容器 / K8s 节点(部分场景)
  • ✅ 云服务器,磁盘性能差(swap 反而拖慢系统)

❌ 不建议关闭的情况

  • ❌ 内存 ≤ 4GB
  • ❌ 有突发内存增长的应用
  • ❌ 没有明确调优经验
  • ❌ 生产环境未经测试

⚠️ 风险
一旦内存耗尽,系统可能直接 OOM Kill 进程,甚至宕机。


三、推荐做法(比直接关闭更安全)

✅ 降低 swap 使用倾向(推荐)

cat /proc/sys/vm/swappiness

临时调整:

sysctl vm.swappiness=10

永久生效:

vi /etc/sysctl.conf
vm.swappiness=10

swappiness=0~100
centos 默认通常是 30
设为 1~10:几乎不用 swap,但保留“兜底”


四、如果你是为了数据库(如 MySQL)关闭 swap

常见推荐组合:

vm.swappiness = 1
vm.overcommit_memory = 1

并保证:

  • 内存充足
  • 有监控(OOM 风险)

五、总结

操作 是否推荐
临时关闭 swap ✅ 可测试
永久关闭 swap ⚠️ 视内存而定
直接关 swap 不管内存 ❌ 不推荐
降低 swappiness ✅ 最稳妥

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

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 内存大小
  • 是否跑数据库 / K8s / Java 应用

我可以给你一个最合适、最安全的 Swap 配置方案

0