前段时间买了一台阿里云香港的轻量机器,配置是社区里被叫做“玩具机”的那一档:
| 项目 | 值 |
|---|---|
| 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 个请求。
什么会让它趴下
- MySQL。一个空的 MySQL 8 就要 400 MB 常驻。装上之后 1G 内存直接见底,然后系统开始 OOM。
- Docker。Docker daemon 本身 100 多 MB,随便再拉一个镜像就超了。
- Node.js 服务。一个 Express 项目 60–150 MB,加上构建时的内存峰值,很容易在
npm install时被 OOM killer 干掉。 - 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 核数。对于个人站,这个指标几乎无关紧要。
真正该关心的是:
- 带宽(决定同时能服务几个人)
- 内存(决定你能装什么,1G 是分水岭)
- 磁盘(40G 对静态站是过剩的)
- CPU(最后才轮到它)
我的实际测法是:部署完,curl 一下首页,看 Content-Length。如果 gzip 后还超过 300 KB,那就该优化了,换更大的机器是浪费钱。
所以它能干什么
以我的经验,1 核 1G 能舒服地跑:
- 一个静态站(这个)
- 一个 nginx 反代 + 两三个静态子站
- 一些小脚本(定时备份、抓汇率、发通知)
- WireGuard / 内网穿透
- 一个我自己写的、只有几十行的小 API(前提是不用数据库)
不能跑的:数据库、容器编排、CI runner、任何 JVM 或 .NET 运行时。
买机器之前先想清楚你要跑什么。大多数个人项目,一台 1G 的机器就绰绰有余了——问题从来不是机器太小,是东西装太多。