Skip to content

云数据管理#

在云端管理数据时有两个关注点:

  • 内存使用:处理大量数据的复杂工作流可能超过 n8n 的内存限制。如果发生这种情况,实例可能会崩溃并变得无法访问。
  • 数据存储:根据您的执行设置和数量,您的 n8n 数据库可能会增长并耗尽存储空间。

为了避免这些问题,n8n 建议您在构建工作流时考虑内存效率,并且不要保存不必要的数据。

每个云计划的内存限制#

当前计划:

  • 试用版:320MiB RAM,10 毫核 CPU 可突发
  • 入门版:320MiB RAM,10 毫核 CPU 可突发
  • Pro-1(10k 执行):640MiB RAM,20 毫核 CPU 可突发
  • Pro-2(50k 执行):1280MiB RAM,80 毫核 CPU 可突发
  • 企业版:4096MiB RAM,80 毫核 CPU 可突发

旧版计划:

  • Start:320MiB RAM,10 毫核 CPU 可突发
  • Power:1280MiB RAM,80 毫核 CPU 可突发

n8n 为每个实例提供最多 100GB 的数据存储。

如何减少工作流中的内存消耗#

您构建工作流的方式会影响它们在执行时消耗多少数据。虽然这些指导原则并不适用于所有情况,但它们提供了避免超过实例内存的最佳实践基线。

  • 将处理的数据分割成更小的块。例如,不要每次执行获取 10,000 行,而是每次执行处理 200 行。
  • 尽可能避免使用代码节点。
  • 处理大量数据时避免手动执行。
  • 将工作流分割成子工作流,并确保每个子工作流向其父工作流返回有限的数据量。

分割工作流起初可能看起来有悖常理,因为它通常需要添加至少两个节点:循环遍历项目节点将项目分割成更小的批次,以及执行工作流节点来启动子工作流。

但是,只要您的子工作流为每个批次执行繁重的工作,然后只向主工作流返回一小部分结果集,这就会减少内存消耗。这是因为子工作流只在内存中保存当前批次的数据,之后内存再次释放。

请注意,n8n 本身会消耗内存来运行。平均而言,软件本身使用大约 180MiB RAM。

与 UI 的交互也会消耗内存。在工作流执行繁重操作时使用工作流 UI 也可能会将内存容量推到限制之上。

如何在云端管理执行数据#

执行数据包括节点数据、参数、变量、执行上下文和二进制数据引用。它是基于文本的。

二进制数据是 n8n 无法表示为纯文本的非文本数据。这些是文件和媒体,如图像、文档、音频文件和视频。它比文本数据大得多。

如果工作流消耗大量数据并且已经过了测试阶段,停止保存成功的执行是一个好选择。

您可以通过两种方式控制 n8n 在数据库中存储多少执行数据:

在管理仪表板中:

  1. 从您的工作区或编辑器,导航到管理面板
  2. 选择管理
  3. 要保存的执行中取消选择您不想记录的执行。

在您的工作流设置中:

  1. 选择选项 选项菜单 菜单。
  2. 选择设置。n8n 打开工作流设置模态框。
  3. 保存成功的生产执行更改为不保存

云数据清理和内存不足事件预防#

自动数据清理#

n8n 在一定时间后或一旦您达到最大存储限制时自动清理执行日志,以先到者为准。清理总是从最旧到最新进行,限制取决于您的云计划:

  • Start 和 Starter 计划:最多保存 2500 次执行和 7 天执行日志保留;
  • Pro 和 Power 计划:最多保存 25000 次执行和 30 天执行日志保留;
  • 企业计划:最多保存 50000 次执行和无限执行日志保留时间。

手动数据清理#

较重的执行和用例可能尽管有自动清理实践,仍会超过数据库容量。在这种情况下,n8n 将手动清理数据以保护实例稳定性。

  1. 警报系统在实例达到 85% 磁盘容量时警告 n8n。
  2. n8n 清理执行数据。n8n 通过运行实例的备份(工作流、用户、凭据和执行数据)并在没有执行数据的情况下恢复它来完成此操作。

由于此过程中的人工步骤,警报系统并不完美。如果警告在下班后触发,或者数据消耗率很高,可能没有时间在剩余磁盘空间填满之前清理数据。