Skip to content
Advertisement

Definition of Java’s CMS GC log lines?

Examining a Java runtime with CMS (Concurrent-Mark-Sweep) GC enabled, what is the definition of the CMS space in the logs below? Shall I assume it is the tenured space? I see the following lines of a minor-major-minor GC event

23.481: [GC 23.481: [DefNew: 1051K->128K(1152K), 0.0029912 secs] 11925K->11027K(13600K), 0.0031697 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
23.492: [Full GC 23.492: [CMS: 10899K->9379K(12448K), 0.2675281 secs] 11182K->9379K(13600K), [CMS Perm : 16383K->16359K(16384K)], 0.2686291 secs] [Times: user=0.25 sys=0.00, real=0.27 secs]
23.956: [GC 23.956: [DefNew: 4224K->49K(4736K), 0.0027654 secs] 13603K->9428K(20372K), 0.0029230 secs] [Times: user=0.00 sys=0.01, real=0.02 secs]

In particular the [CMS: 10899K->9379K(12448K), 0.2675281 secs] at the 23.492 event. Does this display the tenured space just labeled as CMS? Is CMS only performed on tenured?

Advertisement

Answer

(Disclaimer: not a JVM memory expert 😉

If I believe Understanding CMS GC Logs, this kind of log shows a drop in the CMS generation space occupancy, which is about tenured generation space.

It may be linked with Occupancy Fraction, which plays a critical role in controlling things happen in old generation.

Having a lower bound on this value allows the CMS to run frequently and keep the old generation in check all the time.

Advertisement