我已经将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。
答案 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。