Typically there are 3 threads per spout or bolt instance (unless the spout or bolt is spawning its own threads). There are the acker bolts, event loggers and system bolt running there too.
Then there are several more per worker. See a summary of it in section 3.1 of this document https://docs.google.com/document/d/1EzeHL3d7EE-RyyBEpN7CwRmWz3oqjbbKiVVAlzFp2Nc/edit?usp=sharing Get Outlook for iOS<https://aka.ms/o0ukef> On Thu, Mar 16, 2017 at 12:16 PM -0700, "S G" <sg.online.em...@gmail.com<mailto:sg.online.em...@gmail.com>> wrote: Hi, I am trying to make sense of number of threads seen in JConsole. It seems like a very high number of threads are launched per bolt thread. [cid:ii_j0crtbtm0_15ad8874d0924ae2] Experiment 1 topology.workers.val=16 spout.parallelism.val=1 bolt1.parallelism.val=900 bolt2.parallelism.val=160 observation: Threads seen per node in jconsole = 1200 Bolt threads per node = (900 + 160)/16 = 66 Threads per bolt = 1200/66 = 18 Experiment 2 topology.workers.val=16 spout.parallelism.val=1 bolt1.parallelism.val=16 bolt2.parallelism.val=16 observation: Threads seen per node in jconsole = 61 Bolt threads per node = (16+16)/16 = 2 Threads per bolt = 61/2 = 30 There are no other topologies running in my cluster. There are no other spouts/bolts running in my cluster except the ones mentioned above. I am running only one worker process per machine. So the question is how many threads per bolt are launched by storm? I am not interested in the exact number, but concerned about the high number of extra threads (18+ thread) for running a single bolt. Can we limit or optimize it somehow? Or if all of them are required, it would be good to document them somewhere. Thanks SG