云端数据管理#
在云端管理数据时需关注两个问题:
- 内存使用:处理大量数据的复杂工作流可能超出 n8n 的内存限制,导致实例崩溃且无法访问
- 数据存储:根据执行设置和体量,n8n 数据库可能持续增长直至存储空间耗尽
为避免这些问题,n8n 建议构建工作流时注重内存效率,避免保存不必要的数据
各云端方案的内存限制#
现行方案:
- 试用版:320MiB 内存,10 毫核 CPU 可突增
- 入门版:320MiB 内存,10 毫核 CPU 可突增
- 专业版-1(1万次执行):640MiB 内存,20 毫核 CPU 可突增
- 专业版-2(5万次执行):1280MiB 内存,80 毫核 CPU 可突增
- 企业版:4096MiB 内存,80 毫核 CPU 可突增
历史方案:
- 启动版:320MiB 内存,10 毫核 CPU 可突增
- 增强版:1280MiB 内存,80 毫核 CPU 可突增
n8n 为每个实例提供最高 100GB 数据存储空间
如何降低工作流内存消耗#
工作流构建方式直接影响执行时的数据消耗量。以下通用准则虽非适用于所有场景,但提供了避免超出实例内存的最佳实践基准:
- 将处理数据拆分为更小批次(例如每次执行处理 200 行而非 10,000 行)
- 尽量避免使用代码节点
- 处理大量数据时避免手动执行
- 将工作流拆分为子工作流,确保每个子工作流向父工作流返回有限数据量
拆分工作流初期可能违反直觉——通常需要至少增加两个节点:逐项循环节点用于将数据拆分为小批次,执行工作流节点用于启动子工作流。
但只要子工作流承担主要处理任务并向主工作流返回精简结果集,即可有效降低内存消耗。因为子工作流仅需在内存中保留当前批次数据,处理完成后立即释放内存。
注意 n8n 自身运行需消耗约 180MiB 内存。在重度执行期间操作工作流界面也可能使内存使用量超出限制。