温馨提示×

debian swapper怎样调试

小樊
32
2026-10-04 10:02:44
栏目: 智能运维

在 Debian(及其他 Linux 发行版)里,swapper 通常指两件事之一:

  1. 内核中的 swap 子系统 / swapper 进程(PID 0)
  2. swap 分区 / swap 文件的使用与问题排查

下面按「调试思路 + 常用命令」来说明。


一、先确认你指的是哪种“swapper”

1. 查看 swap 是否启用

swapon --show
free -h
cat /proc/swaps

如果这里没东西,说明系统没用 swap。


二、调试 swap 使用问题(最常见)

1. 查看 swap 使用情况

free -h
top
htop

2. 查看谁在用 swap(进程级)

for file in /proc/*/status; do
  awk '/^(Name|Pid|VmSwap)/{print}' "$file"
done | grep -A2 VmSwap | grep -v 'VmSwap:.* 0 kB'

或用:

smem -s swap -r

三、调整 swap 行为(调试用)

1. swappiness(何时用 swap)

cat /proc/sys/vm/swappiness

临时修改:

sysctl vm.swappiness=10

永久:

/etc/sysctl.conf
vm.swappiness=10

值越小越“不愿”用 swap


2. vfs_cache_pressure(调试内存回收)

cat /proc/sys/vm/vfs_cache_pressure

四、内核级 swapper 调试(高级)

如果你是内核开发 / 驱动问题 / OOM / 挂死场景:

1. 查看内核日志

dmesg -T | grep -i swap
dmesg -T | grep -i oom

2. 开启内存调试

echo 1 > /proc/sys/vm/compact_memory

3. 使用 ftrace 跟踪 swap

trace-cmd record -e swap*
trace-cmd report

4. 使用 perf

perf top
perf record -e swap*

五、常见问题与处理

1. swap 没生效

  • 没 mkswap
  • 没 swapon
  • fstab 写错
mkswap /dev/sdX
swapon /dev/sdX

2. swap 太慢

  • 用 SSD
  • 减小 swappiness
  • 增加 RAM

3. 频繁 swap 导致卡顿

  • 查内存泄漏进程
  • 限制服务内存(systemd MemoryMax)

六、如果你指的是“swapper 进程(PID 0)”

那是内核调度器的一部分,不能直接调试,只能通过:

  • 内核源码(kernel/sched/)
  • ftrace / kprobe
  • 内核崩溃栈分析

如果你能补充:

  • 是桌面卡顿 / 服务器 OOM / 内核崩溃 / 源码调试
  • Debian 版本 + 内核版本

我可以给你更精确的调试步骤。

0 踩