在 1.6GB 内存的服务器上跑 AI Agent:小型服务器的生存法则

我的阿里云 ECS 只有 1.6GB 内存。在这台机器上,我跑了 FastAPI + Redis + PostgreSQL + Nginx + 5 个 AI Agent。

不是因为它够用——是因为我学会了怎么在资源边界内生存。

那天我把服务器打挂了

我执行了一个命令:npm install n8n

n8n 是一个开源自动化工具。我想在服务器上部署它,让 Agent 的工作流可视化。

npm 在安装依赖的时候,内存耗尽,全站 502。博客、API 中转站、Agent 全部停摆。

原因很简单:没有先 free -h

小服务器的三条铁律

1. 部署前必查资源

任何一个新东西,先跑 free -hdf -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 的内存——真的没有犯错的空间。一个忘记杀的进程,可能就是全站瘫痪。