两个容器都能启动,为什么 2GB VPS 仍然容易内存不足?
把系统、应用、数据库和后台任务一起计入资源预算,再判断增配是否能解决问题。
文章目录
应用说明写着最低内存 1GB,数据库也能启动,于是把它们放进一台 2GB VPS。真正运行后,构建、导入和备份任务同时开始,内存却很快用完。单个程序的安装要求,没有包含整台机器同时工作的资源。
把同时发生的任务放在一起算
常驻进程之外,操作系统、文件缓存和部署过程也需要内存。数据库恢复、批量导入或应用生成文件,可能出现不同于平时浏览页面的占用。不能把几个最低要求相加,就当成上线配置。
登录 Linux 后,可以先用只读命令观察内存与文件系统:
free -h
df -h
Linux 会用内存作缓存,空闲值很低不一定是异常。结合可用内存、交换使用和应用日志判断,同时记录出问题时正在运行哪些任务。磁盘空间也要按实际挂载点查看,不能只检查一个总容量。
Docker 不会自动替所有应用安排合理的内存预算。同机服务需要限制重要任务的并发,明确哪些任务可以错开执行;单纯多加几个容器,仍然在消耗同一台机器的资源。
核数与容量解决的是不同问题
vCPU 数量之外,还要看处理器、共享方式和程序是否能并行。单线程任务未必因为多几个核心就变快,持续计算还要满足商家的 CPU 使用规则。
磁盘也不能只计算网站代码。镜像、数据库、上传、日志和恢复临时文件都会增长。部署新版本时往往需要暂时保留新旧文件,留出空间比刚好装得下更实用。唯一备份不能留在同一块系统盘。
先定位,再决定增配
| 现象 | 增配前的检查 |
|---|---|
| 导入或备份时内存猛涨 | 能否限制并发、错开任务 |
| 数据库响应慢 | 慢查询、连接数量、磁盘与缓存 |
| 磁盘持续变满 | 上传、镜像、日志与备份保留策略 |
| 平时与高峰都接近上限 | 记录整套服务的持续资源需求 |
只有业务长期接近资源上限,且任务安排已经合理,才适合比较更大的实例。应用反复报错导致资源增长时,换机可能只把故障推迟。
个人网站和同机数据库,可以从 2 核、4GB 内存作为试部署的比较起点,再按实际占用调整;这不是应用最低要求或性能保证。需要中文 RCS 配置选项时,可查看雨云的 CPU、内存和云盘,推荐码 KuZhuJi;已有其他阿里云资源时,可比较ECS 实例与磁盘组合。
把完整账期、网络、备份和恢复空间也放进预算。当前机器通过调整并发就够用时继续使用;确实需要增配,再确认扩容费用、是否停机以及能否从独立备份恢复。