在 Debian 系统中遇到 swapper(swap)内存不足 或 swap 相关内存压力 时,可以从 增加 swap、优化内存使用、调整内核参数 三个方向来解决。下面按常见场景给你一套实用方案。
先看看当前内存和 swap 使用情况:
free -h
swapon --show
top
如果你看到:
swap 很小或没有available 内存很少kswapd0 或 swapper 占用 CPU 很高说明系统确实在频繁 swap,甚至 swap 不够用。
适合大多数 Debian 服务器和桌面。
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
一般建议 swap 大小:
如果你有空闲磁盘分区:
sudo mkswap /dev/sdX
sudo swapon /dev/sdX
systemctl list-units --type=service
sudo systemctl disable 服务名
ps aux --sort=-%mem | head
常见元凶:
cat /proc/sys/vm/swappiness
默认通常是 60,建议服务器改为 10–30:
sudo sysctl vm.swappiness=10
永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
dmesg | grep -i oom
journalctl -k | grep -i oom
sync
echo 3 | sudo tee /proc/sys/vm/drop_caches
如果:
那基本是 物理内存不足,建议:
free -h
swapon --show
vmstat 1
top
dmesg | tail
如果你愿意,可以把下面信息发我,我可以给你精确方案:
free -h 输出我可以帮你判断是 加 swap、调参数,还是必须加内存。