Java 8 - Xmx和XX:MaxHeapSize与

时间:2017-04-03 06:00:07

标签: java tomcat heap

我已经将JVM的Xmx参数设置为5120,但是当java进程(tomcat)运行时,我看到MaxHeapSize与Xmx值不匹配,它被卡在2570,这对我来说很奇怪,对于非常感谢!!

ps的输出:

  

/ usr / bin / java -Dnop -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager -Xms1536m -Xmx5120 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE = true -Djava.net.preferIPv4Stack = true - DSHUTDOWN_PORT = 8005 -DHTTP_PORT = 8080 -DHTTPS_PORT = 8443 -DAJP_PORT = 8009 -XX:InitialHeapSize = 2570m -XX:MaxHeapSize = 2570m -XX:MetaspaceSize = 256m -XX:MaxMetaspaceSize = 512m -XX:+ DisableExplicitGC -Djava.endorsed.dirs = / usr / local / tomcat / endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base = / app / tomcat / default - Dcatalina.home = / usr / local / tomcat -Djava.io.tmpdir = / app / tomcat / default / temp org.apache.catalina。

2 个答案:

答案 0 :(得分:2)

  

-Xmx选项相当于-XX:MaxHeapSize。

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

因此-Xmx5120表示 5120字节,但被-XX:MaxHeapSize=2570m取代。这就是你被这个困住的原因。

只提供其中一个设置并选择正确的值,例如

-Xmx5120m

答案 1 :(得分:0)

配置中的问题:

  

-Xms1536m -Xmx5120

如果您没有指定此配置的单位,它将被解析为bytes,这意味着您的Xmx小于您的Xms,如果此配置适用JVM将未能启动:

 ~/ java -Xms1536m -Xmx5120 -XX:+PrintFlagsFinal -version
Error occurred during initialization of VM
Initial heap size set to a larger value than the maximum heap size

您的JVM没有中止,因为您有以下配置:

  

-XX:InitialHeapSize = 2570m -XX:MaxHeapSize = 2570m

-Xms-XX:InitialHeapSize-Xmx-XX:MaxHeapSize,因此之前错误的-Xms1536m -Xmx5120配置会被后来的Xmx取代这是2570M。