内容存储库中的归档机制是否会影响工作流程的性能?

时间:2019-02-08 13:25:16

标签: apache-nifi

我们实际上正在研究NiFi的内容存储库归档的工作方式。

我们从以下网页获得了信息:https://community.hortonworks.com/articles/82308/understanding-how-nifis-content-repository-archivi.html

不幸的是,我们仍然有问题,我需要一些帮助以获取他们的答案:

  • 如果禁用了归档,还有“内容声明”吗?
  • 如果禁用了归档,是否表示将不会对流文件的内容进行清除机制?
  • 归档机制是否会影响磁盘(I / O)并因此影响性能?那么,如果我们做不到,将会获得重大收益吗?

到目前为止,已启用存档机制。

然后,我需要调整参数以适合我的使用情况:我们将NIFI用于单个用例,估计目标吞吐量为50000 msg / s。

我们有3个节点=>每个节点每个节点的处理速度接近17000 msg / s

每条消息的大小约为810字节。在“记录”类型处理器的帮助下,我们在工作流程的早期就构建了由1000条消息组成的流文件。

因此,每个流文件的大小为810 KB。

每个节点17000 msg / s =每个节点17个流文件/ s =每个节点近14 Mo / s。

我们知道我们需要更改以下参数:

nifi.content.claim.max.appendable.size = 10 MB(默认值) nifi.content.claim.max.flow.files = 100(默认值)

但是我的问题是:用例的最佳价值是什么?有没有办法确定正确的值?计算它们?

我有一个感觉,如果我设置低的值,将会有更多的I / O。 如果我设置更高的值,则数据将驻留在NIFI中的队列中,等待内容声明填满。因此,内存使用量(也许是交换)将增加...

1 个答案:

答案 0 :(得分:1)

如果内容库中的内容声明不再有引用该文件的文件,则该内容声明可以删除。您可以想到Java垃圾回收之类的清理过程,它会定期从堆中删除不再被主动引用的内容。

如果启用了存档,则它将存档内容声明,以便保留数据供以后使用,例如查看指向旧内容的出处事件。它将根据nifi.properties中的设置保留。禁用归档后,将立即删除内容声明。

https://nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html