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



Reply via email to