服务器swap策略调优,vm.swappiness生产服务器

生产服务器上 swap 怎么配、vm.swappiness 设多少,是很多 Linux 运维新手都会纠结的问题。
本文先给出结论:常规生产服务器建议设置为 10;
内存足够且业务稳定时,可以设为 0 或 1,但要留意 OOM 风险。
下面会讲清原理、查看方法、永久修改步骤和常见避坑点。

swap 和 vm.swappiness 是什么

swap 是磁盘上的交换空间,当物理内存不足时,系统会把不常用的内存页换到 swap 上。
vm.swappiness 控制内核倾向使用 swap 的程度,取值范围 0 到 100。
值越大,系统越积极使用 swap;
值越小,越优先保留物理内存。

先查看当前服务器的 swappiness 值

登录服务器,执行:

sysctl vm.swappiness

或直接查看:

cat /proc/sys/vm/swappiness

这两条命令的输出就是当前生效值,不需要修改任何配置就能看到。

生产服务器建议值怎么选

没有绝对统一的值,需要按内存和业务情况判断:

  • 物理内存充足(8G 以上),业务无明显内存尖峰:建议设为 10,保留一定 swap 兜底。
  • 物理内存较小(2G 以下),且用 Java、MySQL 等内存大户:建议设为 1 或 10,不要直接设 0,否则内存瞬间不够时容易触发 OOM。
  • 对延迟敏感、内存完全够用、且确认没有突发内存需求:可以设为 0 或 1,减少 swap 读写带来的磁盘 IO 干扰。

这里给一个可复用的建议:第一次调优先设为 10,观察一周,如果 swap 使用量依然很高,再往 1 或 0 调整;
如果频繁 OOM,则要把值调大或升级内存。

永久修改 vm.swappiness 的步骤

临时修改重启后失效,生产环境要写入配置文件。

编辑 /etc/sysctl.conf:

vim /etc/sysctl.conf

在文件末尾加入:

vm.swappiness=10

保存后让配置立即生效:

sysctl -p

再次确认生效:

sysctl vm.swappiness

输出为 vm.swappiness = 10 即修改成功。

也可以使用 echo 10 > /proc/sys/vm/swappiness 临时生效,但只推荐测试环境使用。

调优后的验证和避坑

修改后重点看两个指标:

free -h

观察 Swap 行的 used 和 si/so(swap in/out)。
长期出现大量 swap 读写,说明物理内存仍紧张,需要结合业务排查。

常见误区有三个。
第一,把 swappiness 设成 0 并不等于禁用 swap,大量内存压力下系统仍可能使用 swap。
第二,不能只调 swappiness 不处理内存泄漏,先通过 top、ps aux --sort=-%mem 找出占用最高的进程。
第三,云服务器如果使用的是本地盘或机械盘,swap 读写会拖慢整体性能,建议在内存充足时压低 swappiness。

如果你不确定当前业务适合什么值,先从 10 开始,结合监控观察一周再微调。
相比直接照搬网上“设为 0”的说法,分步验证更安全。

分享到:
上一篇
Ubuntu24.04内核参数全套调优
下一篇
MySQL数据库锁等待超时,show
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意