I meant workers and not supervisor. Sorry for the confusion. On Mon, 30 Oct 2017 at 13:32 Noppanit Charassinvichai <noppani...@gmail.com> wrote:
> Ah sorry I mixed up supervisor and workers. Those are all workers. > > On Mon, 30 Oct 2017 at 13:06 Priyank Shah <ps...@hortonworks.com> wrote: > >> Hi Noppanit, >> >> >> >> Supervisor processes do not run your spouts and bolts. If those CPU usage >> percentages are for supervisor processes, you should check the same for >> worker processes. Hope this helps. >> >> >> >> *From: *Noppanit Charassinvichai <noppani...@gmail.com> >> *Reply-To: *"user@storm.apache.org" <user@storm.apache.org> >> *Date: *Monday, October 30, 2017 at 7:52 AM >> *To: *"user@storm.apache.org" <user@storm.apache.org> >> *Subject: *How to distribute the wordload equally for Storm Cluster >> >> >> >> Hi! >> >> >> >> I have a storm cluster which process events from Kinesis and forward >> events to other Kinesis Streams and Druid. I have 9 supervisors running. My >> process is mostly CPU bound because it's just forwarding events. >> >> >> >> I noticed that all of my supervisors are not working equally. >> >> >> >> 4 of them running at 40% CPU >> >> 4 of them running at 12% CPU >> >> 1 is barely touching 8% >> >> >> >> I wonder if there's a way to equally distribute the work load so I can >> reduce the number of supervisor running. >> >> >> >> Here's the details of my clusters >> >> >> >> - I'm running one Topology only so I'm not sharing resources. >> >> - I'm running 158 Executors >> >> - 60 for Kinesis Spout >> >> - 25 to Parse the events >> >> - 45 to Send to one Kinesis Stream >> >> - 15 to Send to another Kinesis Stream (It has significantly fewer >> events) >> >> - 4 to Send to Druid >> >> >> >> The complete latency is around 140ms which is pretty good. >> >> >> >> I have also attached the screenshot of my cluster >> >> >> >> Here's the topology configuration >> >> >> >> builder.setSpout("kinesis_spout", spout, >> parseInt(property.getSpoutExecutorNumber())); >> >> >> >> builder.setBolt("parse_bolt", new ParsingDruidBolt(), >> parseInt(property.getDruidParseBoltExecutorNumber())) >> >> .shuffleGrouping("kinesis_spout"); >> >> >> >> builder.setBolt("send_to_kinesis", new EmitPageViewBolt(), >> property.getPageViewBoltExecutorNumber()) >> >> .shuffleGrouping("parse_bolt", STREAM_PAGE_VIEW); >> >> >> >> builder.setBolt("send_to_variations_kinesis", new >> EmitVariationsBolt(), property.getVariationsBoltExecutorNumber()) >> >> .shuffleGrouping("parse_bolt", STREAM_VARIATIONS); >> >> >> >> builder.setBolt("sparrow_firehose", new BeamBolt<>(new >> DruidBeamFactory(topologyConfig)), >> parseInt(property.getDruidSparrowBoltExecutorNumber())) >> >> .shuffleGrouping("parse_bolt", STREAM_EVENT); >> >> [image: creen Shot 2017-10-30 at 10.48.15 AM.png] >> >