温馨提示×

centos swap能否关闭

小樊
44
2026-09-02 17:46:11
栏目: 智能运维

CentOS 中,swap 是可以关闭的,但是否建议关闭,取决于你的实际使用场景。下面分情况说明。


一、如何关闭 swap(临时 / 永久)

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

swapoff -a

查看是否关闭:

free -h
# 或
swapon --show

2️⃣ 永久关闭(重启也不启用)

方法一:注释 /etc/fstab 中的 swap

vi /etc/fstab

注释掉类似下面的行:

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

方法二(可选):彻底删除 swap 分区 / LV

如果是 LVM:

lvremove /dev/centos/swap

如果是文件:

rm -f /swapfile

二、能不能关?要看场景

✅ 可以关闭的情况

  • 物理内存 很大(如 ≥ 16GB,且负载不高)
  • 数据库明确建议关闭 swap(如 Oracle、部分 MySQL 调优)
  • 低延迟应用(避免 swap 导致抖动)
  • 云服务器(很多云厂商默认 swap 很小或没有)

❌ 不建议关闭的情况

  • 内存较小(≤ 4GB)
  • 有突发内存增长风险(如 Java、编译任务)
  • 系统开启 OOM Killer 较激进
  • 生产服务器未做内存压力测试

⚠️ 关闭 swap 后,内存耗尽会直接 OOM,可能导致进程被杀甚至系统不稳定


三、折中方案(推荐)

1️⃣ 保留 swap,但降低使用倾向

sysctl -w vm.swappiness=10

永久生效:

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

2️⃣ 使用小 swap(如 1–2GB)

即使大内存,也建议留一点:

  • 用于内核 crash dump
  • 防止意外 OOM

四、总结一句话

CentOS 的 swap 可以关闭,但生产环境一般不建议完全关闭,尤其是内存不充足的服务器。

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

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 内存大小
  • 用途(Web / 数据库 / 开发 / 生产)

我可以给你更具体的建议。

0