在 CentOS 中,swap 故障常见表现有:
swap exhaustedfree -h 看不到 swapfailed to activate swapswapon -a 报错下面按常见原因 + 修复方法给你一套实战排查流程(适用于 CentOS 7 / 8 / Stream)。
free -h
swapon -s
lsblk
cat /etc/fstab
重点看:
swapon -s
# 空
# 创建 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
swapon -a 报错# 查看 swap 分区
fdisk -l
blkid
假设是 /dev/sda2:
swapoff /dev/sda2
mkswap /dev/sda2
swapon /dev/sda2
fstab 示例:
UUID=xxxx-none swap swap defaults 0 0
A start job is running for /dev/disk/by-uuid/...mount -o remount,rw /
vi /etc/fstab
swapoff /swapfile
rm -f /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
某些云镜像使用 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)
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
free -h 输出/etc/fstab 内容journalctl -xe | grep swap)我可以给你精确修复命令。