一、什么是swappiness
swappiness 是 Linux 内核的一个参数(范围 0-100),用于控制系统将内存数据移到交换分区(Swap)的积极程度。合理设置可以提升性能,尤其是在内存不足或硬盘不稳定的情况下。
1.默认值:
大多数 Linux 发行版默认 swappiness=60
数值含义:
- 0:除非内存耗尽,否则尽量不使用 Swap(适合 SSD 或高性能服务器)。
- 60:平衡模式(默认)。
- 100:积极使用 Swap(可能导致频繁磁盘 I/O,影响性能)。
二、配置建议
1.Swappiness 参数决定了 Swap 分区如何使用
- 当 Swappiness = 0 时,表示最大限度使用物理内存,然后才使用Swap,
- 当 Swappiness = 100 时,表示最大限度使用 Swap,然后才使用物理内存
- 这个值的初始值是60,用Swap比较多,性能会差些
- 桌面系统是SSD硬盘的最好改成 10,尽量先用物理内存。
2.表格
| 硬件情况 | 推荐 Swappiness | 原因 | 额外建议 |
|---|---|---|---|
| 高性能服务器 | 1-10 | 减少 Swap 使用,避免磁盘 I/O 拖慢关键服务(如 MySQL、Redis)。 | 禁用或最小化 Swap |
| 桌面/笔记本 | 30-60 | 平衡内存和 Swap 使用,防止内存不足导致卡顿。 | 默认值通常够用 |
| 老旧/低内存设备 | 70-80 | 避免 OOM(内存溢出)杀死进程,但可能增加磁盘负载。 | 增加 Swap 避免 OOM |
| SSD/NVMe | 1-10 | 减少 Swap 写入,延长 SSD 寿命(但需确保内存足够)。 | 减少写入,延长寿命 |
| 硬盘不稳定/慢速 HDD | 10-30 | 降低 Swap 使用频率,减少对故障硬盘的依赖。 | 降低 Swap 依赖,减少磁盘压力 |
三、修改方法
1.查看swappiness
cat /proc/sys/vm/swappiness

2.更改swappines
sudo sysctl vm.swappiness=10
3.使开机生效
# 切换特权模式
sudo -i
# 在最后添加vm.swappiness = 10
echo "vm.swappiness = 10" >> /etc/sysctl.conf
# 查看是否修改成功
cat /etc/sysctl.conf
其他
1.完全禁用 Swap(不推荐)
仅适用于内存非常充足的服务器:
sudo swapoff -a # 临时禁用所有 Swap
sudo sysctl vm.swappiness=0 # 彻底禁用 Swap 倾向




