温馨提示×

debian swapper如何排查

小樊
40
2026-09-13 09:47:25
栏目: 智能运维

在 Debian(以及其它 Linux 发行版)里,swapper / swap 相关的问题通常分为几类:

  • swap 没生效 / 没挂载
  • swap 太小或无法使用
  • 系统频繁使用 swap(性能问题)
  • OOM / swapper 进程占用异常

下面按排查思路 + 常用命令来说明。


一、确认 swap 当前状态

1. 查看 swap 是否启用

swapon --show

free -h

正常应看到:

NAME      TYPE      SIZE USED PRIO
/dev/sda2 partition   4G   0B   -2

如果没有输出,说明 swap 未启用


2. 查看内核是否识别 swap

cat /proc/swaps

二、swap 没生效的常见原因

1. 没有 swap 分区或文件

创建 swap 文件示例:

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

开机自动挂载:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

2. fstab 配置错误

检查:

cat /etc/fstab

确保有类似:

UUID=xxxx none swap sw 0 0

/swapfile none swap sw 0 0

可测试:

sudo mount -a

3. 磁盘满了导致 swap 文件创建失败

df -h

三、系统频繁使用 swap(性能排查)

1. 查看 swap 使用率

free -h
vmstat 1

关注:

  • si / so(swap in/out)
  • 持续非 0 说明内存不足

2. 查看内存占用最高的进程

top
# 或
ps aux --sort=-%mem | head

3. 调整 swap 使用倾向

查看:

cat /proc/sys/vm/swappiness

默认值通常是 60

降低 swap 使用(如 10):

sudo sysctl vm.swappiness=10

永久生效:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

四、swapper 进程相关问题

1. [swapper] 是什么?

  • swapper / pid 0内核线程
  • 正常存在,不代表异常
  • top 里看到 swapper 占 CPU 通常是:
    • 空闲 CPU 的统计方式
    • 不是真正“占用”

2. 如果是 OOM

查看日志:

dmesg | grep -i oom
journalctl -k | grep -i oom

五、进阶排查

1. swap 分区是否损坏

sudo fsck -f /dev/sdX

(swap 一般不 fsck,但可重建)

重建:

sudo swapoff /dev/sdX
sudo mkswap /dev/sdX
sudo swapon /dev/sdX

2. 使用 zram(现代 Debian 推荐)

sudo apt install zram-tools

自动压缩内存,减少磁盘 swap。


六、快速排查 checklist

swapon --show 是否有输出
free -h 是否显示 swap
/etc/fstab 是否正确
✅ 内存是否真的不足
swappiness 是否合理
✅ 是否是 zram / 磁盘 swap 混淆


如果你愿意,可以贴一下:

  • swapon --show
  • free -h
  • cat /etc/fstab
  • 具体“异常现象”(卡顿 / OOM / 无法开机)

我可以帮你精准判断是哪一类问题。

0