温馨提示×

centos swapper如何排查故障

小樊
47
2026-09-15 07:21:06
栏目: 智能运维

在 CentOS(以及一般 Linux 系统)中,swapper 通常指 swap 分区 / swap 文件(交换空间) 或相关内核机制。当系统出现“swapper 故障”或 swap 相关问题时,常见表现包括:

  • 系统卡顿、OOM(Out of Memory)
  • 无法启用 swap
  • swapon 失败
  • 开机进入 emergency mode(fstab 中 swap 配置错误)
  • free / top 中 swap 异常

下面按排查思路 + 常用命令 + 常见故障处理来说明。


一、确认 swap 当前状态

1. 查看 swap 使用情况

free -h
swapon -s
cat /proc/swaps

2. 查看内核 swap 参数

cat /proc/sys/vm/swappiness

默认值一般为 30,范围 0–100。


二、常见 swap 故障排查

1. swap 未启用

swapon -a

若报错:

  • read swap header failed → swap 文件/分区未初始化
  • device or resource busy → 已被使用或重复挂载

初始化 swap(示例)

# 分区方式
mkswap /dev/sdb1
swapon /dev/sdb1

# 文件方式
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

2. /etc/fstab 配置错误(非常常见)

检查:

cat /etc/fstab

示例正确配置:

/dev/sdb1   swap   swap   defaults   0 0
# 或
/swapfile   swap   swap   defaults   0 0

如果写错可能导致:

  • 系统启动失败
  • 进入 emergency mode

临时修复(救援模式或单用户):

mount -o remount,rw /
vi /etc/fstab

3. swap 分区 UUID 变化

blkid

对比 fstab 中的 UUID:

lsblk -f

若不一致,修改 fstab 或使用设备名。


4. 磁盘空间不足导致 swap 文件创建失败

df -h

确保目标分区有足够空间。


5. 内存充足但 swap 仍被使用

可能是 swappiness 偏高:

sysctl vm.swappiness=10

永久生效:

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

6. swap 使用率 100% 且系统卡顿

说明内存严重不足:

top
ps aux --sort=-%mem

处理方式:

  • 杀掉异常进程
  • 增加内存
  • 增加 swap

三、关闭 / 删除 swap(排错用)

swapoff /dev/sdb1
# 或
swapoff /swapfile

若 swapoff 卡住,说明正在大量换入换出,需先释放内存。


四、日志与内核信息

查看系统日志

journalctl -xe
dmesg | grep -i swap

常见关键字:

  • swap: unsuccessful
  • swapon failed
  • out of memory

五、常见故障速查表

现象 可能原因 处理
swapon 失败 未 mkswap mkswap 后再 swapon
开机 emergency fstab 错 救援模式修 fstab
swap 不生效 UUID 错 blkid 核对
系统卡死 swap 满 加内存 / 加 swap
swap 一直用 swappiness 高 调低

如果你能提供更具体的现象(例如报错信息、CentOS 版本、是否是虚拟机),我可以给你更精准的排查步骤。

0 踩