温馨提示×

debian swapper如何排查故障

小樊
48
2026-09-04 12:22:35
栏目: 智能运维

在 Debian(及其他 Linux 发行版)中,swapper / swap 相关故障通常表现为:

  • 系统卡死、OOM(Out of Memory)
  • swap 未生效或未挂载
  • 交换分区 / 文件异常
  • 性能严重下降(swap 颠簸)

下面按排查思路 + 常用命令 + 常见故障与处理来说明。


一、确认 swap 当前状态

1. 查看 swap 是否启用

swapon --show
free -h
  • swapon --show 无输出,说明 当前没有启用 swap
  • free -h 中 Swap 行为 0 也表示未使用

2. 查看内核是否识别 swap

cat /proc/swaps

二、检查 swap 配置来源

1. 分区方式(fstab)

cat /etc/fstab

示例:

UUID=xxxx none swap sw 0 0

/dev/sda2 none swap sw 0 0

2. 文件方式(swapfile)

常见路径:

ls -lh /swapfile

三、常见故障与排查方法

故障 1:swap 未挂载

现象

  • free -h 中 Swap 为 0
  • 系统内存吃紧时直接 OOM

排查

swapon --show
mount | grep swap

解决

# 分区
swapon /dev/sdX

# 文件
swapon /swapfile

若希望开机自动挂载,检查 /etc/fstab


故障 2:swap 文件创建不当

正确创建 swapfile(Debian 推荐)

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

⚠ 注意:

  • 不能用 echo 直接写文件当 swap
  • Btrfs 上需用:
sudo btrfs subvolume create /swap
sudo truncate -s 0 /swap/swapfile
sudo chattr +C /swap/swapfile
sudo fallocate -l 4G /swap/swapfile

故障 3:fstab 配置错误导致启动失败

现象

  • 系统启动卡在 mounting swap
  • 或进入 emergency mode

排查

blkid

对比 /etc/fstab 中的 UUID

修复

# 注释或修正错误行
UUID=正确UUID none swap sw 0 0

故障 4:swap 使用异常(频繁 swap)

现象

  • 系统极卡
  • topwa
  • si/so 持续不为 0

查看

vmstat 1

关注:

  • si(swap in)
  • so(swap out)

优化

# 减少 swap 倾向(默认 60)
sysctl vm.swappiness=10

永久:

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

故障 5:swap 分区损坏

检查

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: failed
  • swapfile has holes
  • unable to mount swap

五、快速自检清单 ✅

  • [ ] swapon --show 有输出
  • [ ] free -h 中 Swap > 0
  • [ ] /etc/fstab 正确
  • [ ] swap 文件权限为 600
  • [ ] vm.swappiness 合理
  • [ ] 无频繁 si/so

如果你能提供更具体的信息(例如:
“Debian 12 启动不了 / swap 不挂载 / 卡死”),我可以给你更精准的排查步骤。

0