Thanks for sharing the doc Roshan. It is very informative. I think number of threads per bolt is on the high side (When 60 bolts are run per node, there are 1200 total threads/node).
Some of these would be essential for the worker's book-keeping but still it seems we can get a lot of performance boost if we can somehow reduce these threads and the associated context switching between them. On Thu, Mar 16, 2017 at 12:53 PM, Roshan Naik <[email protected]> wrote: > 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" <[email protected]< > mailto:[email protected]>> 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 > > > >
