Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>A theory on what could be happening here could come from the stats of your ehcache. </p> <p>Understanding when the CMS collector kicks off the full GC is important. The following is true [<a href="http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf" rel="nofollow">Reference</a>]</p> <blockquote> <p>Unlike the other collectors, the CMS collector does not start an old generation collection when the old generation becomes full. Instead, it attempts to start a collection early enough so that it can complete before that happens</p> </blockquote> <p>Essentially the CMS collector makes the decision when to run the GC based on the previous levels and how fast it is filling. It is doing this to reduce pause times in the future.</p> <p>So when you are seeing all these full collections early on after the application has started up, the JVM could be determining that it has a flood of memory being allocated, therefore it is running frequent GC's to protect itself from reaching the point where an OOM error would occur. If you look at the stats of your GC's, the first full collection starts when there is only 1.8gb of the 27gb tenured heap consumed. The last occurs at 9.2gb of the 27gb.</p> <p>At this point, when the full GC's are stopping the collector has determined it is not under stress and that the memory allocation has leveled off some. Is it possible at the 5-6 hour mark is when the applications caches have fully populated and are not allocating much more memory for its needs. You could create a tool to view the stats on the hits, misses, sizes of the cache over time and monitor their sizes that way. At some point when they stop growing you could see if they correspond to the time your GC's stop. Personally I have only used home grown tools, but you could try something like the <a href="http://www.ehcache.org/documentation/user-guide/monitor" rel="nofollow">EHCache Monitor</a> tool available on their site.</p> <p>Also, Have you run the GC logs through any tool such as the <a href="http://www.ibm.com/developerworks/java/jdk/tools/" rel="nofollow">IBM Diagnostic tools</a> or <a href="http://www.eclipse.org/mat/" rel="nofollow">MAT</a> to get a breakdown of the throughput your application gets during that time. With CMS collector not all pauses are stop-the-world, so some pause times could be quicker then you think</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload