JBoss Community

Interpreting GC verbose data for JBoss Server

created by Todd Beckwith in Performance Tuning - View the full discussion

Greetings All. TIA for any guidance you may be able to provide.

 

Prior to the beginning of last week, the only thing I knew about JBoss was that we used it in providing our internal users access to webpages created in a production called Natural for Ajax. I've been working in my current position for about 6 months and prior to that, developed applications for Telnet screens in a language called Natural. My IT director in my current position has been unhappy with performance of the webpages created in Natural for Ajax but I started my crash course in JBoss after fulfilling a request to add a new menu system to all of the webpages in our new system. All was well as we slowly shifted users to the new menus but once we opened it up to everyone, we began getting performance complaints. The users were experiencing 8 to 10 second hangs during round trips with the server. We ultimately had to remove a majority of users from the new menu system. After ruling out other components of the system and extensive Internet searching, I began to suspect garbage collection may be the problem.

 

I have since made a few changes that allow me to capture the GC statistics. I immediately noted that full GC was occuring every two minutes, even on our test system without any users. Other than the changes to capture GC data, the only other change I've made to date is to set -XX:+DisableExplicitGC. I do not have statistics on GC with all users on the new menu but I have little doubt that we will see a performance impact if we throw everyone back on it without making additional changes.

 

So, my question is, now that I have a days worth of GC data, how do I go about interpreting it? My gut tells me that new gen space is probably too small right now but I'm not sure how to determine a new size for new gen or calculate a survivor space ratio based on the data collected. Does anyone have a good link to information on how to make heads or tails out of what I am seeing in the GC logs?

 

I have attached the current GC data. Users don't really start hitting our system until the 149049.856 mark in the file.

 

Below are the current parameters being used.

 

JBoss Version:4.2.3.GA

 

Current heap size:1,266,187 kbytes
Maximum heap size:2,796,224 kbytes
Committed memory:2,071,552 kbytes
Uptime:2 days 0 hours 12 minutes
Garbage collector:Name = 'PS MarkSweep', Collections = 5, Total time spent = 48.361 seconds
Garbage collector:Name = 'PS Scavenge', Collections = 1,318, Total time spent = 1 minute

 

Operating System:HP-UX B.11.31
Architecture:IA64N
Number of processors:4
Committed virtual memory:-1 kbytes
Total physical memory:33,451,448 kbytes
Free physical memory:19,695,784 kbytes
Total swap space:16,777,216 kbytes
Free swap space:16,777,216 kbytes

 

VM arguments:

  -Dprogram.name=run.sh

  -Xms3g

  -Xmx3g

  -Dsun.rmi.dgc.client.gcInterval=3600000

  -Dsun.rmi.dgc.server.gcInterval=3600000

  -Dcom.sun.management.jmxremote

  -verbose:gc

  -Xloggc:/SAG/java/jboss_gc_20120310133545.log

  -XX:+PrintGCDetails

  -XX:+PrintGCTimeStamps

  -XX:+DisableExplicitGC

  -Djava.endorsed.dirs=/opt/jboss/jboss-4.2.3.GA/lib/endorsed

 

Thank you.

Reply to this message by going to Community

Start a new discussion in Performance Tuning at Community