温馨提示×

centos swap故障怎么查

小樊
43
2026-10-23 08:00:10
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)上排查 swap 故障,可以按下面思路一步步来。


一、先确认 swap 当前状态

1. 查看 swap 是否启用

free -h

或

swapon --show
  • 如果 swap 行大小为 0,说明 swap 未启用
  • 如果显示设备但异常,可能是挂载失败

2. 查看系统日志

dmesg | grep -i swap
journalctl -xe | grep -i swap

常见错误:

  • swapon failed
  • read-only filesystem
  • device or resource busy

二、常见 swap 故障及排查方法

情况 1:swap 分区未挂载

检查 /etc/fstab

cat /etc/fstab

正常应有类似:

/dev/sda2   swap   swap   defaults   0 0

或

UUID=xxxx   swap   swap   defaults   0 0

手动挂载:

swapon -a

如果报错,记录错误信息继续查。


情况 2:swap 文件损坏或未创建

查看 swap 文件是否存在

ls -lh /swapfile

如果不存在,重新创建

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

并加入 /etc/fstab:

/swapfile swap swap defaults 0 0

情况 3:磁盘或分区问题

检查磁盘状态

lsblk
fdisk -l

文件系统是否只读

mount | grep " / "

如果是 ro,需修复:

fsck -y /dev/sdX
reboot

情况 4:swap 空间不足或 OOM

查看内存和 swap 使用

top
htop

查看 OOM 记录

dmesg | grep -i oom

解决方式:

  • 增大 swap
  • 优化应用内存
  • 限制进程内存

情况 5:swap 被禁用(内核参数)

检查:

cat /proc/sys/vm/swappiness

临时修改:

sysctl vm.swappiness=60

永久:

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

三、快速排查清单(建议顺序)

  1. free -h
  2. swapon --show
  3. journalctl -xe | grep swap
  4. cat /etc/fstab
  5. lsblk
  6. dmesg | grep -i swap

四、如果你愿意,可以提供:

  • CentOS 版本(cat /etc/redhat-release)
  • swapon --show 输出
  • 具体报错信息

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

0 踩