【问题标题】:Why are my NiFi 1.11.1 processors hanging on tasks?为什么我的 NiFi 1.11.1 处理器挂在任务上?
【发布时间】:2020-04-24 02:04:35
【问题描述】:

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

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

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

我对 NiFi 很陌生,所以如果有我可以用来获取更多信息的诊断或类似工具,请告诉我。

【问题讨论】:

  • 您应该生成一个或多个thread dumps 以确定应用程序被阻止的位置。打开文件限制肯定会影响 NiFi,因为它通常需要同时打开许多文件。
  • 文件限制确实在我更新它以匹配工作服务器之前引起了问题。线程转储将大多数线程列为等待或定时等待,还有少量可运行的。可运行文件都报告“锁定的同步器数量:1”。这是我应该担心的事情吗?
  • 如果您需要进一步的帮助,请分享您问题中的线程转储内容或将其发送至 dev@nifi.apache.org。
  • 线程转储太大,无法编辑到评论中,所以我把它放在这里:pastebin.com/A6SyWGsu
  • 我真希望早点找到全局线程设置。定时器驱动设置为 10,事件驱动设置为 1,而工作的生产服务器两者都设置为 300。编辑:这成功了。如果您将此添加为答案,我会很乐意接受。另外,谢谢。

标签: apache-nifi


【解决方案1】:

Per @Andy,在 Settings -> Controller Settings -> General 下有两个选项,Maximum Timer Driven Thread Count 和 Maximum Event Driven Thread Count。这些默认值分别为 10 和 1。对于任何显着数量的处理器,这都是不够的,因此需要增加这些值。就我而言,这意味着将它们都提高到 300。

【讨论】:

  • 事件驱动不是推荐的组件调度设置,因此对于该线程数,您应该可以使用较小的数字。
【解决方案2】:

在 Apache NiFi 配置过程中,推荐了一些步骤(阅读必需以了解非平凡的部署)。在这种情况下,限制行为的特定设置是最大计时器驱动线程计数,这会导致系统上大量处理器的资源争用。

其他资源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多