Here is a statement from my catalina.out, generated by my tomcat server :
1885.855: [GC [PSYoungGen: 742996K->64359K(761472K)] 2509583K->1832973K(4116928K), 0.1453610 secs] [Times: user=0.31 sys=0.00, real=0.14 secs]
Could someone explain the meaning of various numbers in here?
The break-up of the line is as followd:
1885.85
- this in seconds is the amount of time the JVM has been running, so around 31 minutes or so in your case at which point the GC took place.[GC
- states a GC occured at this point in time. This is a Partial GC, sometimes it will showFull GC
Now, the Total Heap available for the JVM = Young + Old
[PSYoungGen:742996K->64359K(761472K)
- represents the Parallel Scavenging Collector in the Young generation (which is one of the many types of GC collectors available in the JVM).The memory freed by GC is always of the pattern
so in your example,
742996K->64359K(761472K)
- the total Young size is 761Mb, and when it reached 742 Mb a collection took place, and it cleared down to 64.3Mb i.e. it cleared up 678 MbHere the total heap memory is represented. So out of a total possible heap of 4.1 Gb, when the GC took place, it had filled 2.5 Gb and it has come down to 1.83 Gb - again the same 678 Mb is what got cleared.
This entire operation took 0.1453610 seconds
shows the break-up of user, system and real times taken.
This is just one line - you would be looking for a pattern esp one that says
Full GC
in it And use a log analyzer like GCViewer for showing you throughput and other good stuff.Also read the docs from Sun to get the basics.
Further reading:
http://sujitpal.blogspot.com/2006/08/charting-jvm-garbage-collection.html
Java Garbage Collection Log messages