温馨提示×

debian swapper内存不足怎办

小樊
42
2026-10-01 10:57:14
栏目: 智能运维

在 Debian 里看到 swapper / 内存不足 通常有两种情况:

  1. 系统真的物理内存 + Swap 都不够
  2. 有进程占用内存异常(如内存泄漏)

下面按“先应急 → 再排查 → 长期解决”来说明。


一、先应急处理(立刻缓解)

1. 查看当前内存和 swap

free -h
swapon --show

2. 临时增加 swap(最常见有效)

如果没有 swap 或 swap 太小:

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

验证:

free -h

如果是云服务器,2G~4G swap 通常够用


3. 释放缓存(不解决根本问题)

sudo sync
sudo echo 3 | sudo tee /proc/sys/vm/drop_caches

二、排查是谁吃内存

1. 查看占用最高的进程

top
# 或
htop

按 M 按内存排序

2. 查看 OOM 记录

dmesg | grep -i oom
dmesg | grep -i kill

如果看到 Out of memory: Killed process,说明系统触发 OOM Killer。


三、长期解决方案

方案 1:永久添加 swap(推荐)

编辑 /etc/fstab:

/swapfile none swap sw 0 0

重启后仍生效。


方案 2:调整 swap 使用倾向

cat /proc/sys/vm/swappiness

默认 60,可调低(更少用 swap):

sudo sysctl vm.swappiness=10

永久:

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

方案 3:限制问题进程

例如 Docker / Java / MySQL:

  • Java:调小 -Xmx
  • Docker:加 --memory
  • MySQL:调 innodb_buffer_pool_size

方案 4:加内存(最根本)

如果是长期服务:

  • 升级实例
  • 或拆分服务

四、如果你看到的是 “swapper” 进程占 CPU

那通常是:

  • 系统空闲进程(正常)
  • 或 频繁 swap 导致卡顿

重点是:减少 swap 抖动,而不是杀 swapper


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

  • free -h
  • top 前几行
  • 是桌面还是服务器

我可以帮你精准判断是“内存不够”还是“配置问题”。

0 踩