在 Ubuntu 中,swapper 通常指 swap 交换空间(swap partition / swapfile)的管理与优化。下面从是否该用 swap、如何优化、常见参数、实战示例几个方面系统说明。
swappiness(最重要)swappiness 决定系统何时开始使用 swap
cat /proc/sys/vm/swappiness
默认值通常是 60
| 场景 | swappiness |
|---|---|
| 大内存桌面 | 10 |
| 普通笔记本 | 10–30 |
| 小内存 / 服务器 | 30–60 |
sudo sysctl vm.swappiness=10
sudo nano /etc/sysctl.conf
添加:
vm.swappiness=10
vfs_cache_pressure控制系统回收 目录 / inode 缓存 的倾向
cat /proc/sys/vm/vfs_cache_pressure
默认是 100
vm.vfs_cache_pressure=50
(减少不必要的 swap)
swapon --show
free -h
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
swapon --show
修改优先级:
sudo swapoff /swapfile
sudo swapon -p 10 /swapfile
priority 越高越优先使用
sudo swapoff -a
永久禁用:
sudo nano /etc/fstab
# 注释掉 swap 行
vm.swappiness=1
vm.overcommit_memory=2
# /etc/sysctl.conf
vm.swappiness=10
vm.vfs_cache_pressure=50
应用:
sudo sysctl -p
vmstat 1
htop
sar -r 1
观察:
| 误区 | 说明 |
|---|---|
| swap 一定慢 | 不一定,现代 SSD 很快 |
| 有 swap 会卡 | 是 swappiness 设置不当 |
| 大内存不需要 swap | OOM 时仍可能崩溃 |
如果你愿意,可以告诉我:
我可以给你一套完全定制的 swap 优化方案。