前段时间买了一台阿里云香港的轻量机器,配置是社区里被叫做“玩具机”的那一档:

项目 值
CPU 2 核(共享)
内存 1 GB
带宽 5 Mbps
磁盘 40 GB SSD
位置 中国香港

一年多少钱不重要,重要的是:它到底能扛住什么。

先看它跑博客的余量

这个站全量部署后:

/var/www/handbooks   920 KB
nginx 常驻内存       约 12 MB
系统总占用           326 MB / 890 MB

也就是说,跑完一个博客 + 两份手册,内存还剩 500 多 MB,磁盘用了 5 G(系统本身占的)。

nginx 处理静态文件的并发能力跟内存关系不大,瓶颈在带宽。5 Mbps 换算下来约 625 KB/s:

  • 首页 gzip 后 10 KB → 单次 16 毫秒
  • 北海道的长文 gzip 后 178 KB → 单次约 0.3 秒

所以理论上同时来 20 个人看首页也不会卡。这不是估算,是算出来的:5 Mbps ÷ 10 KB ≈ 每秒 60 个请求。

什么会让它趴下

  1. MySQL。一个空的 MySQL 8 就要 400 MB 常驻。装上之后 1G 内存直接见底,然后系统开始 OOM。
  2. Docker。Docker daemon 本身 100 多 MB,随便再拉一个镜像就超了。
  3. Node.js 服务。一个 Express 项目 60–150 MB,加上构建时的内存峰值,很容易在 npm install 时被 OOM killer 干掉。
  4. Java。JVM 默认堆就是内存的 1/4,但任何 Spring 项目都建议 512 MB 起。

结论:这台机器适合跑“没有运行时”的东西。静态文件、nginx、一些小脚本。不适合跑需要常驻进程的应用。

5 Mbps 才是真正的天花板

CPU 和内存大部分时候是闲的。真正限制你的是带宽。

一个现实的估算:

场景 单次传输 5 Mbps 下
纯文字页面(gzip) 10 KB 60 人/秒
带图的文章(gzip + WebP) 200 KB 3 人/秒
未压缩的大图 2 MB 0.3 人/秒

第三行是关键。一张没压缩的原图,能吃掉你整条带宽六秒。

所以我做的第一件事不是优化代码,是打开 gzip + 把图片转成 WebP。同一个封面,PNG 转 WebP 从 1.2 MB 降到 14 KB——小了 98 倍。

一个反直觉的结论

很多人买服务器第一件事是看 CPU 核数。对于个人站,这个指标几乎无关紧要。

真正该关心的是:

  1. 带宽(决定同时能服务几个人)
  2. 内存(决定你能装什么,1G 是分水岭)
  3. 磁盘(40G 对静态站是过剩的)
  4. CPU(最后才轮到它)

我的实际测法是:部署完,curl 一下首页,看 Content-Length。如果 gzip 后还超过 300 KB,那就该优化了,换更大的机器是浪费钱。

所以它能干什么

以我的经验,1 核 1G 能舒服地跑:

  • 一个静态站(这个)
  • 一个 nginx 反代 + 两三个静态子站
  • 一些小脚本(定时备份、抓汇率、发通知)
  • WireGuard / 内网穿透
  • 一个我自己写的、只有几十行的小 API(前提是不用数据库)

不能跑的:数据库、容器编排、CI runner、任何 JVM 或 .NET 运行时。

买机器之前先想清楚你要跑什么。大多数个人项目,一台 1G 的机器就绰绰有余了——问题从来不是机器太小,是东西装太多。