在 CentOS(以及通用 Linux)上,“swap 异常”可能表现为:swap 用满、swap 使用异常高、swap 不停读写(io 高)、swap 无法启用、OOM、性能突然下降等。下面按排查思路 + 常见原因 + 处理方式来说明。
free -h
swapon -s
cat /proc/swaps
重点关注:
top
# 或
htop
看:
常见原因:
ps aux --sort=-%mem | head
找出内存占用最高的进程。
查看 swappiness:
cat /proc/sys/vm/swappiness
临时调整:
sysctl vm.swappiness=10
永久生效:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
说明:
排查 IO:
iostat -x 1
vmstat 1
看:
si / so(swap in/out)wa(IO 等待)解决方向:
常见于:
检查:
swapon -a
如果失败,看报错。
查看 fstab:
cat /etc/fstab
示例(swap 分区):
UUID=xxxx none swap sw 0 0
若是 swap 文件:
mkswap /swapfile
swapon /swapfile
可能原因:
手动释放(谨慎):
swapoff -a
swapon -a
⚠️ 会先把 swap 内容换回内存,内存不足会 OOM
| 现象 | 可能原因 |
|---|---|
| swap 高 | 内存不足 |
| swap 高但内存够 | swappiness 高 |
| 系统卡 | swap 频繁读写 |
| swap 没了 | fstab / 分区问题 |
| 进程被杀 | OOM + swap 满 |
10 左右如果你能补充具体现象,比如:
free -h 输出我可以给你更精确的排查命令和处理方案。