Hi all,
we had been running Openfire 3.9.3 and we were experiencing an issue that we need to restart openfire in a week or two, the problem was high cpu usage and high memory usage.
Recently we have updated our openfire installation to the beta (nightly openfire_2015-03-08.deb) and the things got worse yesterday we needed to restart every five minutes. I removed some plugins that were not used without change. With 3.9.3 the problem was high cpu and memory, seems now it is only the cpu.
Openfire 3.9.3 this is the memory and cpu graph
Openfire beta again memory and cpu:
Is there something we can do to catch that problem? Is there a common procedure we can do? Will the profile4j interrupt the service as it is production one and we have more then a thousand opened sessions, or it will interrupt only when we connect to the agent and it is ok to start openfire with profile4j enabled?
I tried to track down the threads with high cpu usage and here is what I had, although not sure how reliable this is (I used jstack and htop):
"NioProcessor-6" #73 prio=5 os_prio=0 tid=0x00007f83f4007800 nid=0x55a3 runnable [0x00007f83c22e1000]
java.lang.Thread.State: RUNNABLE
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPolling IoProcessor.java:655)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$10(AbstractPolli ngIoProcessor.java:654)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractP ollingIoProcessor.java:1121)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
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)
"NioProcessor-6" #73 prio=5 os_prio=0 tid=0x00007f83f4007800 nid=0x55a3 runnable [0x00007f83c22e1000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
- locked <0x00000000c7491a88> (a java.lang.Object)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:311)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:1)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoP rocessor.java:694)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPolling IoProcessor.java:668)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPolling IoProcessor.java:657)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$10(AbstractPolli ngIoProcessor.java:654)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractP ollingIoProcessor.java:1121)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
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)
"NioProcessor-5" #69 prio=5 os_prio=0 tid=0x00007f83f4006000 nid=0x559f runnable [0x00007f83c26e5000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.NativeThread.current(Native Method)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:326)
- locked <0x00000000c71eca00> (a java.lang.Object)
- locked <0x00000000c71ec9e0> (a java.lang.Object)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:311)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:1)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoP rocessor.java:694)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPolling IoProcessor.java:668)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPolling IoProcessor.java:657)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$10(AbstractPolli ngIoProcessor.java:654)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractP ollingIoProcessor.java:1121)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
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)
Thanks
damencho