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 也可能会使内存容量超过限制。

How to manage execution data on Cloud 如何在云端管理执行数据#

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

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

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

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

在管理面板中:

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

在您的工作流设置中:

  1. 选择 Options 选项 Options menu 菜单。
  2. 选择 Settings 设置。n8n 打开 Workflow settings 工作流设置模态框。
  3. Save successful production executions 保存成功的生产执行更改为 Do not save 不保存

Cloud data pruning and out of memory incident prevention 云数据清理和内存不足事件预防#

Automatic data pruning 自动数据清理#

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

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

Manual data pruning 手动数据清理#

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

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

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