温馨提示×

centos swap故障怎么修

小樊
35
2026-09-14 21:40:47
栏目: 智能运维

在 CentOS 里,“swap 故障”常见表现有几种:swap 无法挂载、swap 空间不足、swap 分区损坏、系统启动卡在 swap、OOM 但 swap 没用。下面按常见场景给你一套排查和修复方法。


一、先确认 swap 状态

free -h
swapon --show
cat /proc/swaps
  • 如果 swapon --show 为空,说明 swap 没启用
  • 如果启动时报 swap failed,通常是 fstab 或分区问题

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

1️⃣ 使用 swap 文件(推荐,最简单)

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

开机自动挂载:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

2️⃣ 原有 swap 分区坏了(如 /dev/sda2)

查看:

lsblk
blkid

重建 swap:

mkswap /dev/sda2
swapon /dev/sda2

/etc/fstab 示例:

UUID=xxxx-none swap swap defaults 0 0

⚠️ 重建 swap 会清空该分区数据


三、系统启动卡在 swap(fstab 错误)

解决方法(进救援模式或单用户)

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

临时注释 swap 行:

# /dev/sda2 swap swap defaults 0 0

然后:

reboot

四、swap 明明有,但系统不用

查看优先级:

cat /proc/swaps

调整 swappiness:

sysctl vm.swappiness
sysctl -w vm.swappiness=60

永久:

echo 'vm.swappiness=60' >> /etc/sysctl.conf

五、swap 空间不足(内存爆了)

增加 swap 文件(不影响业务)

dd if=/dev/zero of=/swap2 bs=1M count=4096
mkswap /swap2
swapon /swap2

六、常见错误速查

现象 原因 解决
swapon failed 文件权限不对 chmod 600
启动卡住 fstab swap 错 注释 swap 行
swap 不生效 swappiness=0 调大
OOM kill swap 太小 加 swap 文件

七、如果你愿意,我可以更精准帮你

你可以贴一下:

  • free -h
  • swapon --show
  • /etc/fstab
  • 报错日志(journalctl -xe 或 dmesg)

我可以直接告诉你是哪一步坏了、怎么修最安全

0