跳至内容

云端数据管理#

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

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

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

各云套餐的内存限制#

当前计划:

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

旧版计划:

  • 启动: 320MB内存, 10毫核CPU可突发
  • 性能:1280MiB内存,80毫核CPU可突发

n8n为每个实例提供高达100GB的数据存储空间。

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

构建工作流的方式会影响其执行时的数据消耗量。尽管这些准则并非适用于所有情况,但它们提供了避免超出实例内存的最佳实践基准。

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

最初拆分工作流可能看起来违反直觉,因为它通常需要至少再添加两个节点:Loop Over Items节点用于将项目拆分为更小的批次,以及Execute Workflow节点用于启动子工作流。

然而,只要您的子工作流为每个批次完成繁重的处理任务,然后仅向主工作流返回较小的结果集,这就能降低内存消耗。这是因为子工作流在内存中仅保留当前批次的数据,处理完成后内存即可立即释放。

请注意,n8n本身运行时会消耗内存。平均而言,仅该软件就会占用约180MiB的内存。

与用户界面的交互也会消耗内存。在工作流执行繁重任务时操作其界面,也可能使内存使用量超过限制。

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

执行数据包含节点数据、参数、变量、执行上下文以及二进制数据引用。这些数据是基于文本的。

二进制数据是指n8n无法以纯文本形式表示的非文本数据。这类数据包括文件和媒体,如图像、文档、音频文件和视频文件。其数据量远大于文本数据。

如果一个工作流消耗大量数据且已通过测试阶段,停止保存成功执行记录是一个不错的选择。

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

在管理员仪表板中:

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

在您的工作流设置中:

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

云端数据修剪与内存溢出事件预防#

自动数据修剪#

n8n 会在达到一定时间或最大存储限制时自动清理执行日志,以先到者为准。清理总是从最旧的记录开始,具体限制取决于您的云计划:

  • Start 和 Starter 计划:最多保存 2500 次执行记录,执行日志保留 7 天;
  • 专业版和高级版计划:最多保存25000次执行记录,执行日志保留30天;
  • 企业版计划:最多保存50000次执行记录,且执行日志保留时间无限制。

手动数据修剪#

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

  1. 当实例磁盘容量达到85%时,警报系统会向n8n发出警告。
  2. n8n会清理执行数据。n8n通过运行实例的备份(包括工作流、用户、凭证和执行数据)并在恢复时不包含执行数据来实现这一功能。

由于此过程中涉及人工操作,警报系统并非完美无缺。如果在非工作时间触发警告或数据消耗率较高,可能在剩余磁盘空间填满前没有足够时间进行数据清理。

优云智算