[jboss-user] [Performance Tuning] New message: "Re: CPU usage increases daily for JBoss PID, reaches to 100% after 10 days."

Peter Johnson do-not-reply at jboss.com
Thu Jan 7 11:59:53 EST 2010

User development,

A new message was posted in the thread "CPU usage increases daily for JBoss PID, reaches to 100% after 10 days.":


Author  : Peter Johnson
Profile : http://community.jboss.org/people/peterj

I see the 48 GC threads, but I doubt that they are running and thus not the cause of the problem. (You would need to turn on GC monitoring to be sure.) How many cores/CPUs do you have on the system? What command line options are you using? JVM 5 and later will automatically assign one GC thread per core (for the first 8 cores, with 5 GC threads for every 8 cores after that).
The 48 threads I wanted you to look at were the ones that were stuck in HashMap.put(). They all seem to have the same, or similar. stack trace:
at java.util.HashMap.put(HashMap.java:420)
at com.pb.e2.present.model.MenuModel.buildInternalList(Unknown Source)
at com.pb.e2.present.model.MenuModel.refresh(Unknown Source)
at com.pb.e2.present.model.MenuModel.refresh(Unknown Source)
at com.pb.e2.present.actions.CustomActionBase.getCMSData(CustomActionBase.java:155)
at com.pb.e2.present.actions.CustomActionBase.prepare(CustomActionBase.java:46)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:118)
. . .
Since 48 threads are all in this exact same code, I suspect that there is an infinite loop involved. You need to closely examine the above code (it would have helped you greatly if that code was compiled with -g so that the line numbers would show up in the stack trace).
One thing you can do it to take several thread dumps, each a few seconds appart. Look for threads that are "stuck" in the same code - that is where you have infinite loops.


To reply to this message visit the message page: http://community.jboss.org/message/518793#518793

More information about the jboss-user mailing list