【发布时间】:2019-09-12 02:41:22
【问题描述】:
- JVM 选项是
-server -Xmx100g -Xms100g -XX:MaxMetaspaceSize=1G -Xss512k
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:MaxGCPauseMillis=30
-XX:ConcGCThreads=4 -XX:ParallelGCThreads=12
-XX:+DisableExplicitGC -XX:LargePageSizeInBytes=128m
- 内存为 256G
total used free shared buffers cached
Mem: 251 250 1 100 0 138
-/+ buffers/cache: 112 139
Swap: 7 0 7
- top 命令显示进程的 RES 为 303G
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
240731 xxx 20 0 17.0t 302g 297g S 6.6 119.9 256:35.43 java
- jvm 配置文件显示如下
./jhsdb jmap --heap --pid 240731
Attaching to process ID 240731, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11.0.2+9
using thread-local object allocation.
ZGC with 12 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 107374182400 (102400.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 17592186044415 MB
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 1073741824 (1024.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
ZHeap used 82988M, capacity 1024M, max capacity 27112449862M
最大容量的任何其他 VM 选项? ZGC 堆是如何工作的?
【问题讨论】:
-
后备文件系统上没有足够的空间来保存当前的最大Java堆,为什么要使用后备文件系统来保存当前的最大Java堆?如何更改此选项
-
这是ZGC的一个已知“问题”,实际上是虚拟内存。
标签: java jvm-arguments