温馨提示×

centos swap故障如何修

小樊
44
2026-09-17 22:30:12
栏目: 智能运维

在 CentOS 中,swap 故障常见表现有:

  • 系统报警 swap exhausted
  • free -h 看不到 swap
  • 启动时报 failed to activate swap
  • OOM 频繁、卡顿
  • swapon -a 报错

下面按常见原因 + 修复方法给你一套实战排查流程(适用于 CentOS 7 / 8 / Stream)。


一、先确认 swap 当前状态

free -h
swapon -s
lsblk
cat /etc/fstab

重点看:

  • 有没有 swap
  • 是 swap 分区 还是 swap 文件
  • fstab 里是否正确

二、常见故障 1:swap 未挂载

现象

swapon -s
# 空

修复(swap 文件方式,最常用)

# 创建 2G swap 文件
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

开机自动挂载:

echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

验证:

swapon -s
free -h

三、常见故障 2:swap 分区损坏

现象

  • swapon -a 报错
  • 磁盘有 swap 分区但不可用

修复步骤

# 查看 swap 分区
fdisk -l
blkid

假设是 /dev/sda2:

swapoff /dev/sda2
mkswap /dev/sda2
swapon /dev/sda2

fstab 示例:

UUID=xxxx-none swap swap defaults 0 0

四、常见故障 3:fstab 配置错误导致启动失败

现象

  • 启动时卡在 A start job is running for /dev/disk/by-uuid/...
  • 进入 emergency mode

修复

  1. 进入单用户 / rescue 模式
  2. 注释或修正 fstab
mount -o remount,rw /
vi /etc/fstab
  1. 重启

五、常见故障 4:swap 太小不够用

调整大小(推荐 swap 文件)

swapoff /swapfile
rm -f /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

六、常见故障 5:ZRAM / 云服务器异常

某些云镜像使用 zram swap:

ls /dev/zram*
swapon -s

如果是 zram 失效:

systemctl restart zram-setup

七、临时应急(不推荐长期)

sysctl vm.swappiness=10

避免频繁 swap:

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

八、快速自检清单

✅ free -h 有 swap
✅ swapon -s 正常
✅ /etc/fstab 正确
✅ 无磁盘错误(dmesg | grep swap)


如果你愿意,可以把下面信息发我,我可以直接帮你定位:

  1. CentOS 版本
  2. free -h 输出
  3. /etc/fstab 内容
  4. 报错日志(journalctl -xe | grep swap)

我可以给你精确修复命令。

0 踩