在 Debian(及其他 Linux 发行版)中,swapper / swap 相关故障通常表现为:
下面按排查思路 + 常用命令 + 常见故障与处理来说明。
swapon --show
free -h
swapon --show 无输出,说明 当前没有启用 swapfree -h 中 Swap 行为 0 也表示未使用cat /proc/swaps
cat /etc/fstab
示例:
UUID=xxxx none swap sw 0 0
或
/dev/sda2 none swap sw 0 0
常见路径:
ls -lh /swapfile
现象
free -h 中 Swap 为 0排查
swapon --show
mount | grep swap
解决
# 分区
swapon /dev/sdX
# 文件
swapon /swapfile
若希望开机自动挂载,检查 /etc/fstab
正确创建 swapfile(Debian 推荐)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
⚠ 注意:
echo 直接写文件当 swapsudo btrfs subvolume create /swap
sudo truncate -s 0 /swap/swapfile
sudo chattr +C /swap/swapfile
sudo fallocate -l 4G /swap/swapfile
现象
mounting swap排查
blkid
对比 /etc/fstab 中的 UUID
修复
# 注释或修正错误行
UUID=正确UUID none swap sw 0 0
现象
top 中 wa 高查看
vmstat 1
关注:
si(swap in)so(swap out)优化
# 减少 swap 倾向(默认 60)
sysctl vm.swappiness=10
永久:
echo 'vm.swappiness=10' >> /etc/sysctl.conf
检查
dmesg | grep -i swap
journalctl -k | grep -i swap
处理
swapoff /dev/sdX
mkswap /dev/sdX
swapon /dev/sdX
⚠ 数据不重要,但需确认不是根分区
dmesg | grep -i swap
journalctl -xe | grep -i swap
常见关键字:
swap: failedswapfile has holesunable to mount swapswapon --show 有输出free -h 中 Swap > 0/etc/fstab 正确vm.swappiness 合理如果你能提供更具体的信息(例如:
“Debian 12 启动不了 / swap 不挂载 / 卡死”),我可以给你更精准的排查步骤。