I am using G1GC and in the java mission control I found the following:
Why it shows SerialOld? In the config it shows the following:
I am using G1GC and in the java mission control I found the following:
Why it shows SerialOld? In the config it shows the following:
I believe this is Full GC operation in G1. It used to be serial before JDK 10, it is now parallel after JEP 307 was integrated. This is also evident from the duration of those phases: almost 4 seconds, comparing to regular G1 cycles.
See the source: G1 Full GC used the SerialOldTracer
for reporting, now it uses G1FullTracer
. So, before JDK 10 it would have reported "SerialOld" for Full GC, it should now report "G1Full".
As previously answered this is related to Full GC, but for anyone not to familiar with the concept I'll try to clarify:
Full GC only happens if G1GC somehow could not keep up, or something/someone explicitly requested it. Instead of a short (sub-second) mostly concurrent garbage collection you now have an emergency fall-back to classic stop-the-world Garbage Collection that might take many seconds (depending on heap usage).
See for tuning advice e.g.:
Oracle Java SE version 9 GC Tuning advice
To determine what caused the Full GC you (or anyone else in the same situation) may want to enable GC logging. (E.g.: -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:<file-path>
before Java 9 and as of Java 9: -Xlog:gc*:file=<file-path>
). If you do make sure the GC logging is written to fast storage, see: https://engineering.linkedin.com/blog/2016/02/eliminating-large-jvm-gc-pauses-caused-by-background-io-traffic