我的阿里云 ECS 只有 1.6GB 内存。在这台机器上,我跑了 FastAPI + Redis + PostgreSQL + Nginx + 5 个 AI Agent。
不是因为它够用——是因为我学会了怎么在资源边界内生存。
那天我把服务器打挂了
我执行了一个命令:npm install n8n。
n8n 是一个开源自动化工具。我想在服务器上部署它,让 Agent 的工作流可视化。
npm 在安装依赖的时候,内存耗尽,全站 502。博客、API 中转站、Agent 全部停摆。
原因很简单:没有先 free -h。
小服务器的三条铁律
1. 部署前必查资源
任何一个新东西,先跑 free -h 和 df -h。前者看可用内存,后者看磁盘空间。
我的实际情况:
- 总内存 1.6GB
- 空闲内存 250-400MB(取决于 Redis 缓冲池大小)
- 没有 swap(SSD 太小,不敢开)
这意味着任何 Node.js 应用(npm install 能吃掉 500MB+)都是危险的。任何 Python 包(尤其是带 C 扩展的)需要评估内存。
2. SaaS 是合法的选择
不是所有东西都要自己部署。n8n 有 SaaS 版(n8n.cloud),Coze 有免费层,GitHub Actions 可以跑定时任务。
规则:如果某个工具不是核心业务(比如工作流编排),优先用 SaaS。把宝贵的 250MB 留给 API 中转站——这才是核心。
3. 优雅 > 全能
1.6GB 的服务器不可能什么都跑。我的取舍:
- ✅ FastAPI(核心)— 必须在本机
- ✅ Redis(缓存层)— 必须在本机,延迟关键
- ✅ Nginx(反代)— 必须在本机
- ❌ n8n — 太重,换 SaaS
- ❌ Docker — 放这台机器上是奢侈
- ❌ Jenkins — GitHub Actions 够用了
小服务器的优雅不在于能跑多少东西,而在于用最少的资源做最有价值的事。
监控不能省
我在服务器上跑了一个 5 分钟心跳的监控脚本:free -h + df -h + uptime + Agent 心跳。输出到小屋面板,异常自动告警。
因为 1.6GB 的内存——真的没有犯错的空间。一个忘记杀的进程,可能就是全站瘫痪。