I am using OPenFire 3.3.1 + 1.6.0_01 Java HotSpot™ Server VM +
GNU/Linux + 1GB Memory
Frequently my cpu load beat the 99% and with Top I can see that the java it is the thread that cause it.
In this situation my admin console become unavailable and my im clients stop answer. I have about 300 users connected. The only way to get my service back running is restarting the daemon of openfire.
I am looking for some answer but did not find it in openfire foruns.
Could anybody help me or at least give some idea to try to fix this?
that is the top response when the cpu is very load
PID USER PR NI VIRT RÊS SHR S %CPU %MEM TIME+ COMMAND
it will help a lot if you log GC’‘s of the JVM (-XX:+PrintGCDetails) as another start parameter. So you’'ll see if the JVM itself has a problem or not.
If this problem happens again identify the Openfire PID and run “kill -3 openfire-pid” to create a javacore file.
You may want to try to run “ps -T -p openfire-pid -o pid,tid,pri,time” - this could, depending on your linux ps implementation, display the thread which is using a lot of CPU just like:
PID TID PRI TIME
8313 8313 23 00:00:00
8313 8314 21 00:13:23 <== high “time” value
8313 8315 23 00:00:04
… very long list, run again “ps -T -p openfire-pid -o pid,tid,pri,time | grep 8314” to make sure that this value increases.
Then you would have to look for the “tid” with the highest “time” value and convert it from dec to hex (8314=0x207A). You should find somewhere in the javacore a line with “… nid=0x207A …” - this should be the looping thread.