跳到主要内容

云端数据管理#

在云端管理数据时需关注两个问题:

  • 内存使用:处理大量数据的复杂工作流可能超出 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 内存。在重度执行期间操作工作流界面也可能使内存使用量超出限制。

如何管理云端执行数据#

执行数据包含节点数据、参数、变量、执行上下文及二进制数据引用,均为文本格式。

二进制数据指 n8n 无法以纯文本表示的非文本数据(如图像、文档、音频文件和视频),其体积远大于文本数据。

若工作流消耗大量数据且已完成测试阶段,建议停止保存成功执行的记录。

可通过两种方式控制 n8n 在数据库中存储的执行数据量:

在管理面板中:

  1. 通过工作区或编辑器进入 管理面板
  2. 选择 管理
  3. 需保存的执行记录 中取消勾选不需记录的执行类型

在工作流设置中:

  1. 点击 选项 选项菜单
  2. 选择 设置,打开工作流设置对话框
  3. 保存成功的生产执行记录 更改为 不保存

云端数据清理与内存溢出预防#

自动数据清理#

n8n 会在达到最大存储限制或特定时间后自动清理执行日志(以先到者为准)。清理始终按从旧到新顺序进行,限制标准取决于云端方案:

  • 启动版/入门版:最多保存 2500 条执行记录,执行日志保留 7 天
  • 专业版:最多保存 25000 条执行记录,执行日志保留 30 天
  • 企业版:最多保存 50000 条执行记录,执行日志保留时间无限制

手动数据清理#

重度执行场景可能超出数据库容量,此时 n8n 将手动清理数据以保障实例稳定性:

  1. 当实例磁盘使用率达 85% 时触发预警系统
  2. n8n 通过备份实例(含工作流、用户、凭证和执行数据)并还原不含执行数据的版本来清理数据

由于流程涉及人工操作,预警系统并非完美。若在非工作时间触发警告或数据消耗速率过高,可能无法在磁盘占满前完成数据清理。