JVM GC Log Analysis and Tuning Practice
This article explains how to enable detailed GC logging in the JVM, interpret both Young and Full GC log entries, configure heap parameters, and use the online visualizer gceasy.io to analyze performance metrics such as throughput, pause latency, and memory usage for effective JVM tuning.
The author introduces JVM GC log analysis as a crucial part of Java performance tuning, outlining a seven‑step workflow: monitor GC logs, identify JVM issues, set tuning goals, adjust parameters, compare before‑and‑after results, repeat the cycle, and finally apply the optimal settings to production servers.
Key JVM parameters are described, including -Xms and -Xmx for minimum and maximum heap size, -Xmn for young generation size, and -Xss for thread stack memory. The recommendation is to keep -Xms and -Xmx equal in production to avoid heap size fluctuations.
To generate detailed GC logs, the following JVM flags should be enabled:
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps and -XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-Xloggc:/path/to/gc.log
In an IntelliJ IDEA environment on Windows, the author configures the VM options as:
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:E:/logs/gc-default.logSample GC log entries for Young GC and Full GC are presented and dissected line by line, explaining timestamps, memory before/after values, pause times, and CPU usage.
The article then introduces the online visualizer gceasy.io , which parses the GC log file and produces charts, tables, and downloadable reports showing generation usage, throughput, pause latency, and GC reasons such as "Metadata GC Threshold" and "Allocation Failure".
Visualization results reveal three Full GC events early in the application lifecycle, indicating abnormal behavior that should be addressed by adjusting heap sizes or investigating metaspace usage.
Overall, the guide demonstrates how to combine JVM command‑line flags, log analysis, and visual tools to systematically identify and resolve garbage‑collection performance bottlenecks.
Code Ape Tech Column
Former Ant Group P8 engineer, pure technologist, sharing full‑stack Java, job interview and career advice through a column. Site: java-family.cn
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.