Hello:
I am running a very simple storm topology (1 spout and 2 bolts). I
noticed that when idle, the topology worker was consuming ~50% CPU on
one of my VMs. I connected visual VM to the worker to profile and
noticed that the bulk of the CPU time was spent in
org.jboss.netty.channel.socket.nio.SelectorUtil.select()
I did a thread dump and noticed that there are 219 threads in this
method, an example is shown below. Is there some configuration setting
that controls the number of these threads that I am not setting? I am
using storm from github/master..
Thank You
Milad
"pool-153-thread-1" - Thread t@373
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <3475352a> (a sun.nio.ch.Util$2)
- locked <40e29dbf> (a java.util.Collections$UnmodifiableSet)
- locked <6722c404> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at
org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
at
org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:409)
at
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:206)
at
org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:41)
at
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at
org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Here is my storm.yml:
storm.zookeeper.servers:
- "%zookeeper%"
nimbus.host: "%nimbus%"
worker.childopts: "-Xmx768m -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.port=1%ID%"