温馨提示×

如何清理centos swap

小樊
37
2026-09-05 21:55:21
栏目: 智能运维

在 CentOS 中“清理 swap”通常不是直接“删除 swap 文件内容”,而是通过释放 swap 占用关闭/重新开启 swap来完成。下面按常见场景说明。


一、先查看 swap 使用情况

free -h
swapon --show

二、释放 swap(最常用做法)

1. 将内存中的数据刷回内存(先 sync)

sync

2. 关闭 swap

swapoff -a

这会把 swap 中的数据移回内存(前提:内存足够)

3. 再次开启 swap

swapon -a

✅ 这样 swap 就被“清理”并重新使用。


三、如果 swap 一直清不掉(被进程占用)

查看谁在用 swap

for file in /proc/*/status; do
  awk '/VmSwap|Name/{printf "%s %s ", $1, $2} /Pid/{print $2}' $file
done | sort -k3 -n -r | head

或简单一点:

smem -s swap -r | head

解决方法

  • 重启占用 swap 的服务
  • 或重启服务器(最彻底)

四、如果你用的是 swap 文件(不是分区)

查看

swapon --show

关闭并删除 swap 文件

swapoff /swapfile
rm -f /swapfile

从 fstab 移除

vim /etc/fstab
# 删除类似:
# /swapfile swap swap defaults 0 0

五、调整 swap 使用倾向(可选)

# 越小越倾向用内存
sysctl vm.swappiness=10

永久生效:

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

六、常见注意事项

  • ❌ 不要在内存不足时 swapoff
  • ✅ 生产环境建议低峰期操作
  • ✅ swap 不等于“垃圾”,是正常机制

如果你能告诉我:

  • swap 是 分区还是文件
  • 是否 生产服务器
  • 想“清理”是因为 内存泄漏 / 卡顿 / 优化

我可以给你更精确的操作方案。

0