个人项目最常见的配置就是 2C4G:一台机器上同时跑博客、API、数据库,再塞个缓存。很多人要么买大了浪费,要么挤爆了天天重启。这篇讲怎么估、怎么拆、什么时候升级。

先估算:每个服务吃多少
动手前先给每个服务画个像,不用精确,量级对就行:
| 服务 | 内存量级 | CPU 特点 |
|---|---|---|
| 静态博客 / 文档站 | 几十 MB | 几乎不吃 |
| Node/Java API | 200–500 MB | 请求来了才吃 |
| MySQL / PostgreSQL | 500MB–1GB | 持续低占用 |
| Redis 缓存 | 按数据量,几十到几百 MB | 很低 |
2C4G 跑”博客 + API + 数据库 + Redis”这一套是够的,前提是没有内存泄漏、数据库配了合理的缓冲池。MySQL 默认配置在小内存机器上很贪吃,记得调小 innodb_buffer_pool_size。
怎么拆:Docker 隔离优先

别把所有服务裸装在系统上混跑,互相影响还难迁移。推荐:
- 每个服务一个容器(Docker Compose 编排),资源上限写死:
mem_limit给数据库和 API 都设上。 - 数据库的数据卷挂载到宿主机目录,重建容器不丢数据。
- 反向代理(Nginx/Caddy)单独一个容器或直接跑在宿主机。
这样某个服务内存泄漏,最多拖死自己,不会把整台机器拖进 swap。
数据库放哪:同机还是托管
- 同机:省钱、延迟低,个人项目首选。但备份必须做异地一份,机器挂了数据不能跟着没。
- 托管数据库(云厂商的 RDS):省心、有自动备份,贵。小项目没必要,等数据真值钱了再迁。
什么时候该升级:看这三个信号
- 内存长期超过 80%:先查是谁吃的(
docker stats),是泄漏就修,是真不够就加。 - CPU 持续跑满:偶发尖刺没关系,看 15 分钟均值。
- 磁盘只剩 10%:日志和备份先清,
df -h每周看一眼。
三个信号出现两个,再考虑加配置。先纵向升级(加内存),再横向拆分(加机器)——个人项目阶段,一台 4C8G 往往比两台 2C4G 好管得多。
下一步
- 还没买服务器:Vultr 新手上机指南,跟着开一台。
- 纠结买轻量还是 VPS:轻量应用服务器 vs 传统 VPS。
- 机器到手先加固:安全加固清单。