Hi all,
We have caught some high CPU loads on a server that runs the FTP server feature
which is based on MINA. The only running threads at the time were two
MINA-related threads and I am wondering, if anyone might know what the cause
could be.
JStack gives the following thread details:
"NioProcessor-21" prio=3 tid=0x000000001a777800 nid=0x976c runnable
[0xffff80ffaf2d4000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)
at sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:223)
at sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:84)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x00000007013b2148> (a sun.nio.ch.Util$2)
- locked <0x00000007013b2138> (a java.util.Collections$UnmodifiableSet)
- locked <0x0000000701381b20> (a sun.nio.ch.DevPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at
org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:72)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1093)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
...
"NioProcessor-20" prio=3 tid=0x000000000237f000 nid=0x9769 runnable
[0xffff80ffb0ef0000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)
at sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:223)
at sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:84)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x00000007013b1fd8> (a sun.nio.ch.Util$2)
- locked <0x00000007013b1fc8> (a java.util.Collections$UnmodifiableSet)
- locked <0x0000000701381a08> (a sun.nio.ch.DevPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at
org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:72)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1093)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
These are the only two running thread on the system. I am not sure what exactly
the root cause is. Is it some kind of locking problem? Any ideas?
Thanks a lot.
Cheers,
Martin