在 CentOS(以及一般 Linux 系统)中,swapper 通常指 swap 分区 / swap 文件(交换空间) 或相关内核机制。当系统出现“swapper 故障”或 swap 相关问题时,常见表现包括:
swapon 失败free / top 中 swap 异常下面按排查思路 + 常用命令 + 常见故障处理来说明。
free -h
swapon -s
cat /proc/swaps
cat /proc/sys/vm/swappiness
默认值一般为 30,范围 0–100。
swapon -a
若报错:
read swap header failed → swap 文件/分区未初始化device or resource busy → 已被使用或重复挂载# 分区方式
mkswap /dev/sdb1
swapon /dev/sdb1
# 文件方式
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
检查:
cat /etc/fstab
示例正确配置:
/dev/sdb1 swap swap defaults 0 0
# 或
/swapfile swap swap defaults 0 0
如果写错可能导致:
临时修复(救援模式或单用户):
mount -o remount,rw /
vi /etc/fstab
blkid
对比 fstab 中的 UUID:
lsblk -f
若不一致,修改 fstab 或使用设备名。
df -h
确保目标分区有足够空间。
可能是 swappiness 偏高:
sysctl vm.swappiness=10
永久生效:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
说明内存严重不足:
top
ps aux --sort=-%mem
处理方式:
swapoff /dev/sdb1
# 或
swapoff /swapfile
若 swapoff 卡住,说明正在大量换入换出,需先释放内存。
journalctl -xe
dmesg | grep -i swap
常见关键字:
swap: unsuccessfulswapon failedout of memory| 现象 | 可能原因 | 处理 |
|---|---|---|
| swapon 失败 | 未 mkswap | mkswap 后再 swapon |
| 开机 emergency | fstab 错 | 救援模式修 fstab |
| swap 不生效 | UUID 错 | blkid 核对 |
| 系统卡死 | swap 满 | 加内存 / 加 swap |
| swap 一直用 | swappiness 高 | 调低 |
如果你能提供更具体的现象(例如报错信息、CentOS 版本、是否是虚拟机),我可以给你更精准的排查步骤。