Apache nifi 为什么我的NiFi 1.11.1处理器挂起任务?

Apache nifi 为什么我的NiFi 1.11.1处理器挂起任务?,apache-nifi,Apache Nifi,我有一组进程组在1.8.0 NiFi服务器上愉快地运行。我在一个单独但类似的服务器上创建了一个NiFi 1.11.1实例,并在相同的进程组上进行了模板化。在新的1.11服务器上,处理器(所有处理器,在类型上没有明显差异)处理一小批任务,然后在一个任务上挂起几个小时 重新启动处理器没有明显的效果,重新启动NiFi实例本身通常会让处理器在问题再次出现之前正常运行一两分钟。日志中没有错误,增加内存没有任何影响,处理器使用率没有超过20% 我一直在与运行中的服务器进行比较,唯一的区别是较新的NiFi版本

我有一组进程组在1.8.0 NiFi服务器上愉快地运行。我在一个单独但类似的服务器上创建了一个NiFi 1.11.1实例,并在相同的进程组上进行了模板化。在新的1.11服务器上,处理器(所有处理器,在类型上没有明显差异)处理一小批任务,然后在一个任务上挂起几个小时

重新启动处理器没有明显的效果,重新启动NiFi实例本身通常会让处理器在问题再次出现之前正常运行一两分钟。日志中没有错误,增加内存没有任何影响,处理器使用率没有超过20%

我一直在与运行中的服务器进行比较,唯一的区别是较新的NiFi版本和操作系统的打开文件限制(在我更新以匹配工作服务器之前,这确实导致日志中出现错误语句)。当然,我只检查了我认为需要检查的内容,所以请建议我可能遗漏的任何内容


我对NiFi非常陌生,因此如果有诊断或类似信息可供我获取更多信息,请告诉我。

Per@Andy,在设置->控制器设置->常规下有两个选项,最大计时器驱动线程数和最大事件驱动线程数。它们分别默认为10和1。对于任何数量可观的处理器,这都是不够的,因此需要增加这些值。在我的例子中,这意味着在Apache NiFi配置过程中,将它们的数量增加到300个。

建议执行许多步骤(非普通部署需要阅读)。在本例中,限制行为的特定设置是最大计时器驱动线程数,这会导致与系统上大量处理器的资源争用

额外资源:

  • -描述单个组件的监视状态,包括分配的线程
  • -描述组件行为和处理统计信息的综合视图
  • -Matt Clarke介绍了线程池的工作方式以及如何配置它们以最大限度地提高性能

您应该生成一个或多个,以确定应用程序被阻止的位置。打开的文件限制肯定会影响NiFi,因为它通常需要同时打开多个文件。在我更新它以匹配工作服务器之前,文件限制确实导致了问题。线程转储将大多数线程列为等待或定时等待,并带有少量可运行线程。所有runnables报告“锁定同步器的数量:1”。这是我应该担心的吗?请分享你问题中的线程转储内容或将其发送到dev@nifi.apache.org如果您需要进一步的帮助,线程转储太大,无法编辑到注释中,因此我将其放在这里:我真希望我能早点找到全局线程设置。对于计时器驱动,它被设置为10,对于事件驱动,它被设置为1,而工作的生产服务器两者都有300。编辑:这就成功了。如果你加上这个作为回答,我很乐意接受。另外,谢谢。事件驱动不是推荐的组件调度设置,所以对于线程数,可以使用较小的数字。