Java 8 adding -XX:MaxNewSize to parameters
Shawn Heisey
java at elyograg.org
Fri Nov 2 22:35:50 UTC 2018
On 11/2/2018 3:23 PM, Shawn Heisey wrote:
> Process started Sep27, with G1 tuning, but no parameters setting
> specific generation sizes.
Another followup.
Here's the GC logfiles currently found in the logs directory:
-rw-rw-r--. 1 solr solr 20973298 Oct 3 04:08 solr_gc.log.0
-rw-rw-r--. 1 solr solr 20974540 Oct 8 06:33 solr_gc.log.1
-rw-rw-r--. 1 solr solr 20971712 Oct 14 16:22 solr_gc.log.2
-rw-rw-r--. 1 solr solr 20971895 Oct 20 05:42 solr_gc.log.3
-rw-rw-r--. 1 solr solr 20971661 Oct 24 15:18 solr_gc.log.4
-rw-rw-r--. 1 solr solr 20974231 Oct 29 05:47 solr_gc.log.5
-rw-rw-r--. 1 solr solr 17246462 Nov 2 18:15 solr_gc.log.6.current
Only files numbered 1 through 6 contain the -XX:MaxNewSize parameter.
The info in the previous message was obtained from the last logfile, the
one with current in the name.
The first logfile, solr_gc.log.0, does NOT contain that parameter.
Here's the top of the logfile and the first log entry, showing
consistency between the first log and the the info output by the ps
command -- but the -XX:MaxNewSize parameter is not present:
Java HotSpot(TM) 64-Bit Server VM (25.162-b12) for linux-amd64 JRE
(1.8.0_162-b12), built on Dec 19 2017 21:15:48 by "java_re" with gcc
4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 16268024k(8771152k free), swap
2098172k(2098096k free)
CommandLine flags: -XX:+AggressiveOpts -XX:G1HeapRegionSize=8388608
-XX:GCLogFileSize=20971520 -XX:InitialHeapSize=8328839168
-XX:InitiatingHeapOccupancyPercent=75 -XX:+ManagementServer
-XX:MaxGCPauseMillis=250 -XX:MaxHeapSize=8328839168
-XX:NumberOfGCLogFiles=9
-XX:OnOutOfMemoryError=/data/solr/bin/oom_solr.sh 8983
/data/solr-home/logs -XX:+ParallelRefProcEnabled
-XX:+PerfDisableSharedMem -XX:+PrintGC
-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
-XX:+PrintTenuringDistribution -XX:ThreadStackSize=256
-XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC
-XX:+UseGCLogFileRotation -XX:+UseLargePages
2018-09-27T01:11:19.136-0400: 0.518: Total time for which application
threads were stopped: 0.0001694 seconds, Stopping threads took:
0.0000184 seconds
So that means that in the first GC logfile written by Java, that
parameter wasn't there, but then it was added for the rest of the
logfiles. Which is REALLY odd.
My best guess is that G1GC eventually decided on the size of the eden
generation that it wanted to use, and then added the explicit
commandline option for that size to the active arguments. I had thought
that G1 was capable of adjusting the generation sizes on the fly at any
time ... but the five logs that contain the -XX:MaxNewSize option all
have it set to the same value, which is 4991221760 bytes. It has been
set to that value for at least a month.
Thanks,
Shawn
More information about the hotspot-gc-use
mailing list