瞭解NiFi最大線程池和處理器併發任務設置
編輯人(全網同名):酷酷的誠 郵箱:[email protected]
Max Timer Driven Thread Count 和 Max Event Driven Thread Count
NiFi可以設置相對較低的最大計時器線程計數(Max Timer Driven Thread Count)
,以支持在最簡單的硬件上運行。此默認設置可能會限制必須執行大量併發處理的超大容量數據流的性能。
設置此值的一般建議是運行NiFi服務的硬件可用內核數的2-4倍。對於每個服務器具有不同硬件的NiFi羣集(不推薦使用不同配置的節點組裝集羣),將根據內核最少的服務器將其設置爲可能的最高值。
注意:請記住,你在NIFi UI中應用的所有配置都將應用於NiFi羣集中的每個節點。但羣集UI可查看每個節點使用的總活動線程。
隨着時間的推移,密切監視每個羣集節點上的系統CPU使用率將有助於你確定使用率的常規或常規峯值。此信息將幫助你確定是否可以將最大計時器線程計數(Max Timer Driven Thread Count)
設置增加得更高。僅僅將該值任意設置爲較高值可能會導致線程在CPU等待中花費過多時間,從而無法真正執行任何工作。
事件驅動調度策略(Event Driven scheduling strategy)被認爲是實驗性的,因此完全不建議使用它。用戶僅應將其NiFi處理器配置爲使用計時器調度策略之一(Timer Driven
或 CRON Driven
)。
將並行任務分配給處理器組件
處理器上的併發任務設置應始終從默認值1開始,並且僅根據需要緩慢增加。向每個處理器分配太多並行任務可能會對其他數據流/處理器產生影響。
由於上述方法的工作原理,用戶可能會發現,通過簡單地設置大量併發任務,他們可以獲得更好的處理器性能。他們真正在做的只是在這個大隊列中堆積更多的請求,從而使處理器有更多機會從資源池中獲取可用線程之一。
另外,你可能擁有的處理器本來就具有長時間運行的任務。爲這些處理器分配大量併發任務可能意味着該線程池的很大一部分將被長時間使用。然後,這會限制池中試圖處理隊列中其餘任務的可用線程數。
總結
綜上所述,作爲Apache NIFI的管理員,首先要合理設置線程池的最大計時器線程計數(Max Timer Driven Thread Count)
,然後合理評估每一個運行的流程所需要分配的線程數。這樣,才能合理運用服務器資源。
公衆號
關注公衆號 得到第一手文章/文檔更新推送。