“服务器慢了,把内存翻倍吧”是托管领域最贵的条件反射。有时它是对的。但很多时候,机器其实在等磁盘,或者 CPU 已经满载,新加的内存只是闲着,账单却翻了一倍。
所以在讨论谁需要 64 GB 之前,先搞清楚你真正缺的是什么。如果你只想看各类负载的典型内存数字,我们之前的指南 VPS 需要多少内存 里都有,包括语言模型的计算公式。这篇讲的是诊断:内存、磁盘还是 CPU。
三条命令,两分钟
在服务器慢的时候运行它们,而不是凌晨四点什么都没发生的时候:
free -m
vmstat 1 10
cat /proc/pressure/cpu /proc/pressure/memory /proc/pressure/io
下面是不用翻教科书的读法。
free -m。别看 free 这一列,Linux 会故意用磁盘缓存填满空闲内存。要看 available。如果一台 2 GB 的机器上只剩几百 MB,而 swap 的 used 还在不断增长,内存就很紧张了。
vmstat 1 10。四列就能说明大部分情况:
| 列 | 含义 | 指向 |
|---|---|---|
si / so | 每秒换入、换出 swap 的页数 | 内存 |
wa | CPU 等待磁盘的时间占比 | 磁盘 |
us + sy | CPU 在干活的时间占比 | CPU |
st | 虚拟化层把你的 CPU 分给别人的时间占比 | CPU(vCPU 与他人分时使用) |
si/so 偶尔出现几个非零值很正常。真正的信号是每一秒都在持续 swap。
/proc/pressure/*。三者中最诚实的一个。每个文件显示任务因等待该资源而停滞的时间比例。memory 里的 some avg60=25.00 表示过去一分钟里,有四分之一的时间某些任务在等内存。三个文件里哪个数字最大,哪个就是你的瓶颈。
如果是磁盘
wa 高、io 压力高、swap 很少。常见原因是数据库或者日志很多的应用读取的数据超过了缓存能装下的量。
转折来了:加内存可能真能解决,因为 Linux 能缓存更多磁盘内容。如果你的数据库有 6 GB,热数据占 3 GB,把内存从 2 GB 加到 8 GB,磁盘问题可能就消失了。但如果数据库有 300 GB,每次查询碰到的都是不同部分,再合理的内存也缓存不下。这时要靠更好的索引、更小的查询或者换一种数据布局。这里所有套餐都跑在 NVMe 上,所以慢的很少是磁盘本身,通常是访问方式。
如果是 CPU
us+sy 高、cpu 有压力、没有 swap、几乎不等磁盘。压缩、编译、视频编码、图片处理、加密计算。加内存完全没用。
也要留意 st。在 VPS 上,一个 vCPU 是一个物理核心的部分时间,而不是整个核心:套餐里的数字是短时突发的上限,长时间满载可能会被限流,以保证机器上所有人公平使用。如果你的任务需要所有核心连续几个小时跑满 100%,那是任务本身的问题。我们宁愿现在就说清楚,而不是等你买了更大的套餐之后。
如果真是内存
持续 swap、内存压力上升、dmesg 里出现 OOM killer。现在的问题是:要多少。
2 GB 就够、而且往往能撑好几年的: 一个或几个机器人、一个小 API、一个 VPN、一个 Nginx 后面的静态站点、几个 cron 爬虫、一个监控代理。Micro 提供 2 vCPU、2 GB 内存和 25 GB 磁盘,NAT 版每月 5 美元,带独立 IPv4 的每月 10 美元。
4–8 GB 是舒适的中间档: 一个 Web 应用加它的数据库、一个小型搜索索引、无头浏览器自动化、两三个并排运行的智能体。
32–64 GB 留给必须常驻内存的数据:
- 工作集有几十 GB 的数据库,让缓存真正装得下热数据;
- 大型内存缓存或队列,一旦落到磁盘就会拖慢一切;
- 在数百万个文本片段上检索的向量索引(真实数字见 大规模自建 RAG);
- 在 CPU 上推理中等规模的语言模型,模型权重必须能装进内存;
- 合并部署:把原来分散在十台小服务器上的十个服务放到一台机器上。
Pro-64 就是为这些场景准备的:12 vCPU、64 GB 内存、600 GB NVMe 和一个独立 IPv4,每月 70 美元。中间档有每月 40 美元的 Pro-32 和 55 美元的 Pro-48;更高一档是 90 美元的 Pro-80。Pro 套餐 有哪些地点可用,下单时可以看到。
大机器不合适的情况
有三种情况,即使你负担得起,64 GB 也是错误答案。
GPU 任务。这些套餐都没有 GPU。如果你的模型训练或快速推理需要 GPU,内存很大的 CPU 机器也能跑,但很慢,你是在为耐心付费。
长时间满载 CPU 的任务。前面说过:vCPU 是突发容量。十二个 vCPU 全天候跑满 100%,并不是 VPS 的设计用途。
还有“以防万一”。如果三条命令都没有显示内存压力,多出来的 60 GB 只是在缓存你根本不读的文件。从小一点开始。升级到同一网络类型的更大套餐,会原地增加 vCPU、内存和磁盘,只需重启一次,详见 更换套餐。原地降配是不行的,所以买大了是有实际代价的:想缩小就得迁移到新服务器,而 不停机迁移 VPS 是一件你最好不用去做的苦差事。
如果你在比较不同服务商的套餐,如何看懂 VPS 规格 会讲清楚 vCPU、磁盘和端口这些数字到底承诺了什么。
评论
暂无评论。来做第一个吧。