Swap设置:内存不足时的缓冲策略
讲清 swap 的创建、大小选择与 swappiness 调整,以及它救不了什么。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。
涉及 swap、虚拟内存、内存不足 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。
创建方法
fallocate 建 swapfile 后 mkswap 与 swapon,写入 fstab 持久化,权限设 600。
大小选择
物理内存小(2G 内)给等量 swap,大内存机器给 2–4G 兜底即可,别按老经验两倍配。
swappiness
数据库机器调低到 10 以内,减少换页抖动;纯缓存机器可默认。
它能救什么
突发峰值与内存泄漏的缓冲,让 OOM 杀来得慢一点,给你排障时间。
它救不了什么
持续泄漏最终还是会 OOM,swap 掩盖问题但不解决问题,告警仍要配。
速查表
| 环节 | 关键动作 |
|---|---|
| 创建方法 | fallocate 建 swapfile 后 mkswap 与 swapon,写入 fstab 持久化,权限设 600 |
| 大小选择 | 物理内存小(2G 内)给等量 swap,大内存机器给 2–4G 兜底即可,别按老经验两倍配 |
| swappiness | 数据库机器调低到 10 以内,减少换页抖动;纯缓存机器可默认 |
| 它能救什么 | 突发峰值与内存泄漏的缓冲,让 OOM 杀来得慢一点,给你排障时间 |
常见问题
Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。
Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。
Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。
小结
回到这篇的 5 个环节:创建方法、大小选择、swappiness、它能救什么、它救不了什么。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。
相关阅读:screen、tmux与supervisor:后台进程管理、fail2ban自动封禁实战、Git部署:从提交到上线的流程。
延伸阅读:内存占用高排查:从free到smem、内核参数调优:文件句柄与网络队列、Linux常用命令速查:文件、进程、网络。