温馨提示×

centos swapper故障怎么排

小樊
44
2026-09-21 10:33:48
栏目: 智能运维

在 CentOS(以及 RHEL 系)里,swapper / swap 相关故障常见表现有:

  • 系统卡死、OOM、无法分配内存
  • swapon -s 看不到 swap
  • 启动时报 Failed to activate swap
  • /etc/fstab 中 swap 挂载失败
  • swap 文件/分区损坏
  • 使用 zRAM / swapper 相关内核问题

下面按排查思路 + 常见场景 + 解决方法来说明。


一、先确认 swap 当前状态

free -h
swapon -s
cat /proc/swaps
  • 如果 没有任何 swap:说明没启用
  • 如果 swap 存在但不可用:看是否是分区/文件损坏

二、检查 /etc/fstab 是否正确

cat /etc/fstab

典型 swap 配置:

/dev/sda2   swap   swap   defaults   0 0

或 swap 文件:

/swapfile   swap   swap   defaults   0 0

常见问题

  • UUID 写错
  • 设备名变了(如 sda → vda)
  • swap 文件不存在

可用:

blkid
lsblk

确认设备。


三、swap 分区/文件不存在或损坏

1️⃣ 重新创建 swap 文件(推荐)

dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

写入 fstab:

/swapfile swap swap defaults 0 0

2️⃣ swap 分区修复

mkswap /dev/sdX
swapon /dev/sdX

⚠️ 会清空该分区数据


四、启动时 swap 激活失败

现象

Failed to activate swap /swapfile

排查

journalctl -xe | grep -i swap

常见原因:

  • 文件系统未挂载就启用 swap
  • SELinux 阻止
  • 文件权限不对

解决

restorecon -v /swapfile
chmod 600 /swapfile

五、swap 太小导致系统卡死

free -h
vmstat 1

如果:

  • swap 很快用完
  • si/so 很高

说明内存不足。

临时解决

sysctl vm.swappiness=10

永久:

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

六、zRAM / swapper 内核问题(云服务器常见)

某些 CentOS 使用 zRAM:

ls /dev/zram*
swapon -s

如果是 zRAM 故障:

systemctl status swap.target
systemctl restart systemd-zram-setup

七、OOM / swapper 导致死机

查看日志:

dmesg | grep -i oom
journalctl -k | grep -i kill

解决思路

  • 加内存
  • 加 swap
  • 限制进程内存(cgroup / systemd)

八、快速排查清单(总结)

free -h
swapon -s
journalctl -xe | grep swap
/etc/fstab 是否正确
✅ swap 文件/分区是否存在
✅ SELinux / 权限问题


如果你能贴出:

  • CentOS 版本
  • 报错日志
  • free -h / swapon -s 输出

我可以帮你精准定位是哪一类 swapper 故障

0