JVM startup parameters
JAVA_OPTS = "-Xms4G -Xmx4G -Xmn2G -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M -XX:+UseParallelGC -XX:+PrintGCDetails -Xloggc:/home/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC"
Setting JVM startup parameters
GC log snippet
OpenJDK 64-Bit Server VM (25.342-b07) for linux-amd64 JRE (1.8.0_342-b07), built on Jul 16 2022 09:19:19 by "openjdk" with gcc 4.4.7 20120313 (Red Hat 4.4.7-23) Memory: 4k page, physical 8388608k(8386904k free), swap 0k(0k free) CommandLine flags: -XX:CompressedClassSpaceSize=528482304 -XX:InitialHeapSize=4294967296 -XX:MaxHeapSize=4294967296 -XX:MaxMetaspaceSize=536870912 -XX:MaxNewSize=2147483648 -XX:MetaspaceSize=536870912 -XX:NewSize=2147483648 -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 2024-09-24T10:43:44.094+0800: 21.703: Total time for which application threads were stopped: 0.0015655 seconds, Stopping threads took: 0.0000978 seconds {Heap before GC invocations=11 (full 0): PSYoungGen total 1494528K, used 1466389K [0x0000000790800000, 0x00000007f0800000, 0x00000007f0800000) eden space 1414656K, 100% used [0x0000000790800000,0x00000007e6d80000,0x00000007e6d80000) from space 79872K, 64% used [0x00000007eba00000,0x00000007eec85748,0x00000007f0800000) to space 78336K, 0% used [0x00000007e6d80000,0x00000007e6d80000,0x00000007eba00000) ParOldGen total 2621440K, used 72408K [0x00000006f0800000, 0x0000000790800000, 0x0000000790800000) object space 2621440K, 2% used [0x00000006f0800000,0x00000006f4eb60e0,0x0000000790800000) Metaspace used 114761K, capacity 120350K, committed 120576K, reserved 1155072K class space used 13324K, capacity 14260K, committed 14336K, reserved 1048576K 2024-09-24T10:43:44.149+0800: 21.759: [GC (Allocation Failure) [PSYoungGen: 1466389K->41915K(1492992K)] 1538798K->152295K(4114432K), 0.0591035 secs] [Times: user=0.16 sys=0.01, real=0.06 secs] Heap after GC invocations=11 (full 0): PSYoungGen total 1492992K, used 41915K [0x0000000790800000, 0x00000007f0800000, 0x00000007f0800000) eden space 1414656K, 0% used [0x0000000790800000,0x0000000790800000,0x00000007e6d80000) from space 78336K, 53% used [0x00000007e6d80000,0x00000007e966ee58,0x00000007eba00000) to space 78336K, 0% used [0x00000007ebb80000,0x00000007ebb80000,0x00000007f0800000) ParOldGen total 2621440K, used 110380K [0x00000006f0800000, 0x0000000790800000, 0x0000000790800000) object space 2621440K, 4% used [0x00000006f0800000,0x00000006f73cb088,0x0000000790800000) Metaspace used 114761K, capacity 120350K, committed 120576K, reserved 1155072K class space used 13324K, capacity 14260K, committed 14336K, reserved 1048576K } 2024-09-24T10:43:44.209+0800: 21.818: Total time for which application threads were stopped: 0.0593724 seconds, Stopping threads took: 0.0000333 seconds {Heap before GC invocations=906 (full 2): PSYoungGen total 2065920K, used 2041627K [0x0000000760800000, 0x00000007e0800000, 0x00000007e0800000) eden space 2034688K, 100% used [0x0000000760800000,0x00000007dcb00000,0x00000007dcb00000) from space 31232K, 22% used [0x00000007de980000,0x00000007df046e10,0x00000007e0800000) to space 31232K, 0% used [0x00000007dcb00000,0x00000007dcb00000,0x00000007de980000) ParOldGen total 2097152K, used 2080736K [0x00000006e0800000, 0x0000000760800000, 0x0000000760800000) object space 2097152K, 99% used [0x00000006e0800000,0x000000075f7f8060,0x0000000760800000) Metaspace used 176015K, capacity 189742K, committed 191104K, reserved 1218560K class space used 19024K, capacity 21351K, committed 21632K, reserved 1048576K 2024-09-24T14:14:45.047+0800: 11571.644: [GC (Allocation Failure) [PSYoungGen: 2041627K->26414K(2061312K)] 4122363K->2109278K(4158464K), 0.0208053 secs] [Times: user=0.07 sys=0.00, real=0.02 secs] Heap after GC invocations=906 (full 2): PSYoungGen total 2061312K, used 26414K [0x0000000760800000, 0x00000007e0800000, 0x00000007e0800000) eden space 2034688K, 0% used [0x0000000760800000,0x0000000760800000,0x00000007dcb00000) from space 26624K, 99% used [0x00000007dcb00000,0x00000007de4cba70,0x00000007de500000) to space 33792K, 0% used [0x00000007de700000,0x00000007de700000,0x00000007e0800000) ParOldGen total 2097152K, used 2082863K [0x00000006e0800000, 0x0000000760800000, 0x0000000760800000) object space 2097152K, 99% used [0x00000006e0800000,0x000000075fa0be58,0x0000000760800000) Metaspace used 176015K, capacity 189742K, committed 191104K, reserved 1218560K class space used 19024K, capacity 21351K, committed 21632K, reserved 1048576K } {Heap before GC invocations=907 (full 3): PSYoungGen total 2061312K, used 26414K [0x0000000760800000, 0x00000007e0800000, 0x00000007e0800000) eden space 2034688K, 0% used [0x0000000760800000,0x0000000760800000,0x00000007dcb00000) from space 26624K, 99% used [0x00000007dcb00000,0x00000007de4cba70,0x00000007de500000) to space 33792K, 0% used [0x00000007de700000,0x00000007de700000,0x00000007e0800000) ParOldGen total 2097152K, used 2082863K [0x00000006e0800000, 0x0000000760800000, 0x0000000760800000) object space 2097152K, 99% used [0x00000006e0800000,0x000000075fa0be58,0x0000000760800000) Metaspace used 176015K, capacity 189742K, committed 191104K, reserved 1218560K class space used 19024K, capacity 21351K, committed 21632K, reserved 1048576K 2024-09-24T14:14:45.068+0800: 11571.665: [Full GC (Ergonomics) [PSYoungGen: 26414K->0K(2061312K)] [ParOldGen: 2082863K->300700K(2097152K)] 2109278K->300700K(4158464K), [Metaspace: 176015K->174750K(1218560K)], 0.6404574 secs] [Times: user=1.88 sys=0.00, real=0.64 secs] Heap after GC invocations=907 (full 3): PSYoungGen total 2061312K, used 0K [0x0000000760800000, 0x00000007e0800000, 0x00000007e0800000) eden space 2034688K, 0% used [0x0000000760800000,0x0000000760800000,0x00000007dcb00000) from space 26624K, 0% used [0x00000007dcb00000,0x00000007dcb00000,0x00000007de500000) to space 33792K, 0% used [0x00000007de700000,0x00000007de700000,0x00000007e0800000) ParOldGen total 2097152K, used 300700K [0x00000006e0800000, 0x0000000760800000, 0x0000000760800000) object space 2097152K, 14% used [0x00000006e0800000,0x00000006f2da7140,0x0000000760800000) Metaspace used 174750K, capacity 187618K, committed 191104K, reserved 1218560K class space used 18827K, capacity 20997K, committed 21632K, reserved 1048576K }
Application pause time
During the GC process, all threads of the application are suspended, which is called the "Stop-The-World" (STW) event. Pause time directly affects the performance and responsiveness of the application.
Log example:
2024-09-24T10:43:44.094+0800: 21.703: Total time for which application threads were stopped: 0.0015655 seconds, Stopping threads took: 0.0000978 seconds
Total time for which application threads were stopped:
Stopping threads took:
GC (Minor GC)
Log example
2024-09-24T10:43:44.149+0800: 21.759: [GC (Allocation Failure) [PSYoungGen: 1466389K->41915K(1492992K)] 1538798K->152295K(4114432K), 0.0591035 secs]
Full GC
Log example:
2024-09-24T14:14:45.068+0800: 11571.665: [Full GC (Ergonomics) [PSYoungGen: 26414K->0K(2061312K)] [ParOldGen: 2082863K->300700K(2097152K)] 2109278K->300700K(4158464K), [Metaspace: 176015K->174750K(1218560K)], 0.6404574 secs]
Detailed status of heap memory
Due to the use of the -XX:+PrintHeapAtGC parameter, the GC log will print the detailed status of the heap memory before and after each GC, including the capacity and usage of each memory area.
Log example:
Heap before GC invocations=11 (full 0): PSYoungGen total 1494528K, used 1466389K [0x0000000790800000, 0x00000007f0800000, 0x00000007f0800000) eden space 1414656K, 100% used [0x0000000790800000,0x00000007e6d80000,0x00000007e6d80000) from space 79872K, 64% used [0x00000007eba00000,0x00000007eec85748,0x00000007f0800000) to space 78336K, 0% used [0x00000007e6d80000,0x00000007e6d80000,0x00000007eba00000) ParOldGen total 2621440K, used 72408K [0x00000006f0800000, 0x0000000790800000, 0x0000000790800000) object space 2621440K, 2% used [0x00000006f0800000,0x00000006f4eb60e0,0x0000000790800000) Metaspace used 114761K, capacity 120350K, committed 120576K, reserved 1155072K class space used 13324K, capacity 14260K, committed 14336K, reserved 1048576K
PSYoungGen (young generation):
ParOldGen (old generation):
Metaspace:
Correspondence between JVM startup parameters and GC logs
Due to manually setting the JVM startup parameters, the GC logs contain more detailed information that facilitates in-depth analysis:
Memory allocation and usage:
Time stamp information:
GC event details:
The above is the detailed content of Detailed explanation of ParallelGC logs. For more information, please follow other related articles on the PHP Chinese website!