# Need to understand reason behind the MQTT threads

**URL:** <https://forum.inductiveautomation.com/t/need-to-understand-reason-behind-the-mqtt-threads/111054>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [September 29, 2025, 2:13pm UTC](https://forum.inductiveautomation.com/t/need-to-understand-reason-behind-the-mqtt-threads/111054 "2025-09-29T14:13:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Samkcr](https://avatars.discourse-cdn.com/v4/letter/s/7c8e57/32.png) [@Samkcr](https://forum.inductiveautomation.com/u/Samkcr)\
**Post date:** [September 29, 2025, 2:13pm UTC](https://forum.inductiveautomation.com/t/need-to-understand-reason-behind-the-mqtt-threads/111054/1 "2025-09-29T14:13:07Z")

</div>

Hi,

We are communicating with MES through MQTT. This works fine. But when we analyze the thread there are multiple threads in Waiting ,Runnable and Timed\_Waiting state. So we would like to understand why we are getting this threads? Does it affects performance of the ignition system?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/9/b9b6c3fa475f294900d83873ab5fa73d9992e015.png)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [September 29, 2025, 3:26pm UTC](https://forum.inductiveautomation.com/t/need-to-understand-reason-behind-the-mqtt-threads/111054/2 "2025-09-29T15:26:03Z")

</div>

Threads in waiting or timed\_waiting state are just idle in a thread pool. They'll consume some small amount of memory, but close to zero CPU.  
It's common practice in Java programs to keep threads in a managed pool of a fixed size because it's cheaper to recycle threads from a pool than to constantly create and destroy them.

To find out exactly what these thread pools are for you'd have to contact Cirruslink or look in their documentation, but it's very unlikely that these particular threads you have identified are causing any noticeable problem.

The generally recommended strategy when troubleshooting is to start from the issue you're having and work backwards to the cause, rather than look at the entire system and try to identify _potential_ problems.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 29, 2025, 3:28pm UTC](https://forum.inductiveautomation.com/t/need-to-understand-reason-behind-the-mqtt-threads/111054/3 "2025-09-29T15:28:44Z")

</div>

Further to Paul's point:

Having idle threads in a thread pool is **good** for latency, which is **good** for an event-driven system like Ignition. Waiting in `LockSupport.park()` is the ideal case.
