You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by 潘臻轩 <zh...@gmail.com> on 2014/07/22 08:03:53 UTC
disruptor eat up cpu
when i use storm(it use disruptor),I find a process eat up cpu, i use
cgroup to bind 2 core
I use jstack to find which thread use more cpu. i find
"Thread-40" prio=10 tid=0x00007fb534c2d000 nid=0x27129 waiting on condition
[0x000000004632a000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000756c6ff30> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2116)
at
com.lmax.disruptor.BlockingWaitStrategy.waitFor(BlockingWaitStrategy.java:87)
at
com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:54)
at
backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:56)
at
backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:62)
at
backtype.storm.daemon.executor$fn__4384$fn__4393$fn__4440.invoke(executor.clj:658)
at backtype.storm.util$async_loop$fn__469.invoke(util.clj:396)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:662)
I check storm use strategy, it use BlockingWaitStrategy .
I see some info, it says, if use blockingWaitStrategy, it use no cpu while
idle.
so ,i so confused.who know it?