← 幫助中心/故障排查

VPS 内存不足怎么办:排查 OOM 与添加 Swap

网站半夜突然挂了、数据库莫名重启、SSH 卡到连不上——这些症状背后最常见的原因是内存耗尽。本文教你确认问题、应急处理和长期解决。

第一步:确认是不是内存问题

SSH 登录后执行 free -h,重点看 available 列:长期低于 200M 说明内存紧张。再执行 dmesg | grep -i kill,如果看到 Out of memory: Killed process 字样,说明内核的 OOM Killer 已经在杀进程了——你的服务「莫名消失」就是被它杀的。

第二步:找出吃内存的进程

运行 top 后按 Shift+M 按内存排序,常见元凶:

  • MySQL:默认配置假设内存充裕,小内存机器要调低 innodb_buffer_pool_size;
  • PHP-FPM:进程数开太多,按内存÷单进程占用估算 max_children;
  • 失控的应用:内存泄漏的 Node.js / Java 程序会持续增长直到耗尽。

第三步:添加 Swap 应急

Swap 是用磁盘充当的「后备内存」,能防止 OOM 直接杀进程。VPS 通常默认没有 Swap,添加 2G 的步骤:用 fallocate 创建 swap 文件、chmod 600 设置权限、mkswap 格式化、swapon 启用,最后写入 /etc/fstab 保证重启后生效。注意 Swap 只是缓冲:内存真正不够时系统会变慢但不崩溃,争取到的是排查时间。

长期解决

如果调优后 available 仍然常年贴底、Swap 使用率居高不下,说明业务体量已经超过当前配置,升级内存是最划算的解法。00Shark 支持套餐升配,联系客服说明当前用量即可评估。

本文由 SharkCloud 編輯團隊借助 AI 工具輔助撰寫,經人工審核後發佈。