Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] CPU spikes caused by Selector threads

Hello,

We're investigating cause of some strange CPU spikes. I've gathered output of "top -b -H" in the time of spike, and sorted the output by "%CPU" in descending order ("grep java top_h.txt | sort -k 9") and got following result:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
...
22105 root      20   0 2363m 667m  19m R 57.4 17.8  59:34.95 java
22105 root      20   0 2363m 667m  19m R 61.9 17.8  59:33.18 java
22106 root      20   0 2363m 667m  19m S 65.1 17.8  37:28.81 java
22106 root      20   0 2363m 667m  19m R 68.6 17.8  37:36.15 java
22106 root      20   0 2363m 667m  19m R 71.4 17.8  37:34.04 java
22106 root      20   0 2363m 667m  19m S 71.9 17.8  37:38.34 java
22105 root      20   0 2363m 667m  19m R 73.0 17.8  59:31.30 java
22106 root      20   0 2363m 667m  19m R 73.3 17.8  37:31.83 java
22106 root      20   0 2363m 667m  19m R 87.6 17.8  37:26.83 java

According to thread dumps, these threads (PID 22105 and 22106) are named as something like "qtp...-.. Selector".

What these threads do? is there any way to avoid CPU spikes caused by these threads?

Our environment is:

* jetty-8.1.13.v20130916
* OpenJDK 1.7.0_101

Attachment is relevant part of some thread dumps that acquired in the time of spike.

Thanks.
"qtp1956352437-15 Selector0" prio=10 tid=0x00007f9adc34a800 nid=0x5659 runnable [0x00007f9abada7000]
   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:87)
        - locked <0x00000000cf2f67e0> (a sun.nio.ch.Util$2)
        - locked <0x00000000cf2f67f0> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000cf2f6798> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:569)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

"qtp1956352437-15 Selector0" prio=10 tid=0x00007f9adc34a800 nid=0x5659 runnable [0x00007f9abada7000]
   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:87)
        - locked <0x00000000cf2f67e0> (a sun.nio.ch.Util$2)
        - locked <0x00000000cf2f67f0> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000cf2f6798> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:569)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

"qtp1956352437-15 Selector0" prio=10 tid=0x00007f9adc34a800 nid=0x5659 runnable [0x00007f9abada7000]
   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:87)
        - locked <0x00000000cf2f67e0> (a sun.nio.ch.Util$2)
        - locked <0x00000000cf2f67f0> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000cf2f6798> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:569)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

"qtp1956352437-16 Selector1" prio=10 tid=0x00007f9adc351000 nid=0x565a runnable [0x00007f9abaca6000]
   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:87)
        - locked <0x00000000cf2f66a8> (a sun.nio.ch.Util$2)
        - locked <0x00000000cf2f66b8> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000cf2f6660> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.selectNow(SelectorImpl.java:106)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:536)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

"qtp1956352437-16 Selector1" prio=10 tid=0x00007f9adc351000 nid=0x565a runnable [0x00007f9abaca6000]
   java.lang.Thread.State: RUNNABLE
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)

"qtp1956352437-16 Selector1" prio=10 tid=0x00007f9adc351000 nid=0x565a runnable [0x00007f9abaca6000]
   java.lang.Thread.State: RUNNABLE
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.schedule(SelectChannelEndPoint.java:150)
        - locked <0x00000000d3749630> (a org.eclipse.jetty.io.nio.SelectChannelEndPoint)
        at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:619)
        at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:290)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)



Back to the top