1GB 内存 VPS 跑 n8n 够不够?
1GB 能跑,但比较紧。n8n + PostgreSQL + Docker 三者加起来日常就吃掉 600-800MB,留给工作流执行的内存只有 200MB 左右。建议 2GB 起步更从容。
n8n 内存占用实测
以下是 n8n 自托管各组件的内存占用实测数据(在 Docker 环境下):
| 组件 | 空闲内存 | 运行时内存 | 备注 |
|---|---|---|---|
| n8n 主进程 | 250-350MB | 350-500MB | Node.js 进程,GC 不积极,内存占用逐渐升高 |
| PostgreSQL | 50-80MB | 100-200MB | 共享缓冲区 + 连接开销 |
| Docker 开销 | 50-100MB | 50-100MB | dockerd + containerd 常驻 |
| 系统基础 | 150-250MB | 150-250MB | systemd / sshd / 其他守护进程 |
| 合计 | 500-780MB | 650-1050MB | 1GB 机器所剩无几 |
总结:1GB 内存机器在空闲时还有 200-500MB 可用,但一旦有工作流执行(尤其是数据处理类),内存会迅速逼近上限,触发 swap 或 OOM Killer。
1GB 能跑的 3 种场景
场景 1:轻量工作流 + SQLite(可行)
把 PostgreSQL 换成 SQLite,省下 100-200MB 内存。工作流以 Webhook 转发、定时 HTTP 请求为主(不涉及大文件处理、不涉及 AI)。Docker 换成裸装 n8n,再省 50-100MB。
精简后总内存占用约 400-500MB,留给工作流的内存有 500MB 左右——够用了。
安装命令参考(裸装):
npm install -g n8n
n8n start 或者用 SQLite 的 Docker Compose(省掉 PostgreSQL 容器):
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=yourpassword 场景 2:个人日常使用 + swap 兜底(勉强)
保留 PostgreSQL,加 1-2GB swap。日常空闲时 n8n + PostgreSQL 占 600-700MB,swap 基本不使用。有工作流执行时内存可能超 1GB,swap 介入。SSD 上的 swap 速度远慢于内存(NVMe 约 1000MB/s vs 内存 20000+MB/s),但至少不会 OOM 崩溃。
这种配置适合每天跑几个简单工作流、并发不超过 2 个的场景。注意:长期依赖 swap 会降低 SSD 寿命,但以 VPS 的使用寿命来说影响微乎其微。
场景 3:纯测试 / 开发环境(够用)
只是试用 n8n、写几个测试工作流、或者给团队 demo——1GB 完全够。因为不是长期负载,没有并发,不需要高可用。
1GB 不够的 3 种场景
场景 1:接入 AI / LLM 接口
用 n8n 的 AI 节点(OpenAI、Claude、本地 LLM),每个请求的内存开销远高于普通 HTTP。尤其是处理长文本、流式响应时,单工作流可能额外吃掉 200-500MB 内存。建议 4GB 起步。
场景 2:多个并发工作流
如果同时有 3-5 个工作流在运行(定时并发、Webhook 同时触发),n8n 的内存是叠加的。1GB 顶不住。建议 2-4GB,看并发数量。
场景 3:团队使用
多人同时登录 n8n 界面编辑工作流、查看执行记录——每个 UI session 会触发额外的 API 请求和数据处理。建议 4GB+,并且上 PostgreSQL(SQLite 不支持并发写入)。
实用优化技巧
- 用 SQLite 替代 PostgreSQL:省 100-200MB 内存。缺点是不支持多实例、高并发,但个人使用完全够。
- 裸装 n8n 不用 Docker:直接 npm install -g n8n,省掉 Docker 守护进程的 50-100MB。用 pm2 守护进程。
- 限制 Node.js 内存:启动 n8n 时加
--max-old-space-size=384,限制 V8 堆内存上限,防止 n8n 无限制吃内存。但这会让 GC 更频繁(小小性能损失)。 - 调优 PostgreSQL(如果用的话):shared_buffers 设为 64MB,max_connections 设为 5,work_mem 设为 2MB。把 PostgreSQL 的胃口缩小。
- 启用来宾级 swap:
fallocate -l 2G /swapfile && mkswap /swapfile && swapon /swapfile。2GB swap 能给你多一层保护。 - 控制工作流并发:n8n 环境变量
N8N_CONCURRENCY_PRODUCTION_LIMIT设为 2(默认是 -1 不限),防止多个工作流同时执行打满 CPU 和内存。 - 定期重启 n8n:Node.js 的内存 GC 会随着运行时间增长而"迟缓"。用 pm2 或 cron 每周凌晨重启一次 n8n,释放累积的内存碎片。
配置推荐
| 场景 | 推荐配置 | 数据库 | 月费参考 |
|---|---|---|---|
| 学习 / 测试 / 个人轻用 | 1GB + 2GB swap | SQLite | $5-10 |
| 个人日常使用 | 2GB | PostgreSQL (64MB buffer) | $10-15 |
| 重度使用 / 多工作流 | 4GB | PostgreSQL (256MB buffer) | $20-30 |
| 团队 / AI 集成 | 8GB+ | PostgreSQL (512MB+ buffer) | $40-80 |
推荐哪家 VPS?
n8n 不需要中国优化线路——访问 n8n 面板的你大概率在国外,或者国内外都不是实时操作。性价比优先:
- 学习 / 个人轻用(1-2GB):RackNerd、CloudCone——年付 $15-30 搞定
- 日常使用(2-4GB):Hetzner(欧洲用户,€4-6/月)、Vultr / DO(美国用户,$12-24/月)
- 团队 / AI(8GB+):Hetzner 的大内存机型性价比最高(CX31 8GB 约 €8/月),或 Netcup 的 RS 系列