一、关闭 swap 的标准流程(推荐)
1️⃣ 查看当前 swap 使用情况(确认现状)
swapon --show
# 或
free -h
确认:
- 是否存在 swap 分区 / swap 文件
- 当前是否有进程在使用 swap
2️⃣ 临时关闭 swap(立即生效,不重启)
swapoff -a
作用:
- 立刻将 swap 中的数据回迁到内存
- 不会修改配置文件
- 重启后会恢复(如果 fstab 里还在)
⚠️ 注意:
- 如果内存不足,
swapoff可能卡住或 OOM - 生产环境建议先确认 可用内存充足
3️⃣ 验证 swap 是否已关闭
swapon --show
free -h
期望结果:
Swap:行为0swapon --show无输出
4️⃣ 永久关闭 swap(修改 /etc/fstab)
vi /etc/fstab
将 swap 相关行 注释掉,例如:
swap 分区
# /dev/mapper/centos-swap swap swap defaults 0 0
swap 文件
# /swapfile swap swap defaults 0 0
5️⃣ 验证 fstab 配置是否正确(非常重要)
mount -a
- 无任何报错 → fstab 配置正确
- 有报错 → 立刻修复,否则下次重启可能进不去系统
6️⃣ 重启验证(最终确认)
reboot
重启后再次检查:
swapon --show
free -h
确认 swap 不会再自动启用
二、Kubernetes 场景补充(你很可能会用到)
🔹 kubelet 强制要求 swap 关闭
-
kubelet 默认参数:
--fail-swap-on=true -
swap 开启会导致:
- kubelet 启动失败
- Node NotReady
🔹 检查 kubelet 是否还在检测 swap
ps -ef | grep kubelet | grep swap
如需临时绕过(不推荐生产):
--fail-swap-on=false
三、生产环境注意事项(重点)
⚠️ 1️⃣ 内存是否足够
关闭 swap 后:
- 内存压力会 直接暴露
- OOM Killer 更容易触发
建议同时检查:
free -h
vmstat 1
⚠️ 2️⃣ 是否需要调整内核参数
部分场景建议顺带调小 swap 倾向(如果不彻底关):
sysctl -w vm.swappiness=0
永久生效:
# /etc/sysctl.conf
vm.swappiness = 0
四、标准操作总结(一句话版)
关闭 swap 的标准步骤是:
swapoff -a立即关闭- 注释
/etc/fstab中 swap 项mount -a校验- 重启验证
498

被折叠的 条评论
为什么被折叠?



