Java 8 - Xmx和XX:MaxHeapSize不匹配

3
我已经将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.

-Xmx5120 should be Xmx5120m - user3778137
2个回答

6

2

您配置文件中存在的问题:

-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。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接