Java VisualVM将两倍的Xmx显示为最大堆大小

Java VisualVM将两倍的Xmx显示为最大堆大小,java,g1gc,Java,G1gc,我有以下问题: 有一个javavm,Xmx选项设置为70000m=70GB(是的,就是这么大)。但是如果我监视前面提到的JVM,最大堆显示为140000m(如屏幕截图所示) 下面列出了已使用的JVM选项: -XX:+UseG1GC -Duser.timezone=Europe/Berlin -Djava.security.egd=file:///dev/urandom -Dsun.rmi.transport.tcp.handshakeTimeout=180000 -Dsun.rmi.dgc.c

我有以下问题:

有一个javavm,Xmx选项设置为70000m=70GB(是的,就是这么大)。但是如果我监视前面提到的JVM,最大堆显示为140000m(如屏幕截图所示)

下面列出了已使用的JVM选项:

-XX:+UseG1GC
-Duser.timezone=Europe/Berlin
-Djava.security.egd=file:///dev/urandom
-Dsun.rmi.transport.tcp.handshakeTimeout=180000
-Dsun.rmi.dgc.client.gcInterval=600000
-Dsun.rmi.dgc.server.gcInterval=600000
-verbose:gc
-XX:CICompilerCount=2
-Xrunjdwp:transport=dt_socket,server=y,address=3997,suspend=n
-Xms70000m
-Xmx70000m
-XX:+UnlockExperimentalVMOptions
-XX:G1HeapRegionSize=32
-XX:MaxGCPauseMillis=200
-XX:G1NewSizePercent=2
-XX:G1MaxNewSizePercent=60
-XX:ParallelGCThreads=8
-XX:ConcGCThreads=2
-XX:InitiatingHeapOccupancyPercent=45
-XX:G1MixedGCLiveThresholdPercent=65
-XX:G1HeapWastePercent=10
-XX:G1OldCSetRegionThresholdPercent=10
-XX:G1ReservePercent=10

有人想知道为什么VisualVM显示双倍最大堆大小吗

这是visualVM中的一个错误,在使用G1垃圾收集器时,最大值实际上没有这么大。Jconsole确实正确地报告了它


下面提供了一个可能的解释。这里的原因是,不同的代不再具有固定的大小,而是每个代的最大大小都是整个堆的大小(因为它们可以根据需要使用任意多的堆)。我还没有找到任何正式的错误报告。

70000 MB=70 GB。你能确认你要的是这么大的一堆吗?我觉得这不正确。我的错误-谢谢你的纠正。是的,它真的那么大!顺便说一句,我们有一个192 GB RAM的服务器,运行三个JVM(一个30 GB,两个70 GB),现在很清楚,JVM没有足够的内存。对于JVM本身和其他对象,您需要的不仅仅是这些。即使是70GB JVM也不够。以下是github错误报告: