我正在分析一个使用oracle jdk 8的Java应用程序。查看gc统计数据,S0 / S1的幸存者空间容量与幸存者比率不匹配。有人可以解释这是怎么回事吗?当我更改幸存者比率时,它不会更改幸存者的大小(容量)。我是否必须显式设置jvm参数才能正常工作?
Attaching to process ID 15084, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.201-b09
using thread-local object allocation.
Garbage-First (G1) GC with 63 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 137438953472 (131072.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 45801799680 (43680.0MB)
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 33554432 (32.0MB)
Heap Usage:
G1 Heap:
regions = 4096
capacity = 137438953472 (131072.0MB)
used = 29062893296 (27716.534896850586MB)
free = 108376060176 (103355.46510314941MB)
21.146037976723164% used
G1 Young Generation:
Eden Space:
regions = 858
capacity = 47815065600 (45600.0MB)
used = 28789702656 (27456.0MB)
free = 19025362944 (18144.0MB)
60.21052631578947% used
Survivor Space:
regions = 9
capacity = 301989888 (288.0MB)
used = 301989888 (288.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 0
capacity = 89321897984 (85184.0MB)
used = 0 (0.0MB)
free = 89321897984 (85184.0MB)
0.0% used
36705 interned Strings occupying 3847064 bytes.