出现意外的 JVM 参数(-Xms512M 和 -Xmx1024M)

Unexpected JVM Parameters (-Xms512M and -Xmx1024M) appearing

我已经在 Ubuntu 上配置了 Tomcat 8.5.32,并且使用 setenv.sh 我已经配置了 -Xms4096M 和 -Xmx8192M。 内容如下:

export JAVA_OPTS="-Djava.awt.headless=true -Xms4096M -Xmx8192M"

启动时,catalina.out 日志显示如下。如您所见,除了我所期望的之外,我还得到了 -Xms512M 和 -Xmx1024M。

19-Jul-2018 13:12:47.162 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.32
19-Jul-2018 13:12:47.165 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jun 20 2018 19:50:35 UTC
19-Jul-2018 13:12:47.166 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.32.0
19-Jul-2018 13:12:47.166 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
19-Jul-2018 13:12:47.166 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.4.0-130-generic
19-Jul-2018 13:12:47.167 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
19-Jul-2018 13:12:47.167 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-8-oracle/jre
19-Jul-2018 13:12:47.167 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_171-b11
19-Jul-2018 13:12:47.167 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
19-Jul-2018 13:12:47.168 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /opt/tomcat
19-Jul-2018 13:12:47.169 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /opt/tomcat
19-Jul-2018 13:12:47.169 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
19-Jul-2018 13:12:47.169 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
19-Jul-2018 13:12:47.171 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.awt.headless=true
19-Jul-2018 13:12:47.171 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms4096M
19-Jul-2018 13:12:47.172 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx8192M
19-Jul-2018 13:12:47.172 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
19-Jul-2018 13:12:47.172 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
19-Jul-2018 13:12:47.172 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
19-Jul-2018 13:12:47.172 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512M
19-Jul-2018 13:12:47.173 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024M
19-Jul-2018 13:12:47.173 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseParallelGC
19-Jul-2018 13:12:47.173 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
19-Jul-2018 13:12:47.176 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/tomcat
19-Jul-2018 13:12:47.176 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/tomcat
19-Jul-2018 13:12:47.177 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp

我已经尝试了一些检查以确保我没有完全偏离我正在尝试做的事情,方法是将 catalina.sh 脚本调整为 "echo" 一些最终执行命令之前的详细信息。我得到了以下输出,它主要与 catalina 日志相关,但仍然看不到额外参数的来源!!

Catalina Opt:       
Java Opt:       -Djava.awt.headless=true -Xms4096M -Xmx8192M -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
JDPA Opt:       
JSSE Opt:       -Djdk.tls.ephemeralDHKeySize=2048
Logging Config:     -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
Class Path:     /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
JDK Java Options:        --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Run Java:       /usr/lib/jvm/java-8-oracle/bin/java
Endorsed Prop:      ignore.endorsed.dirs
Catalina Base:      /opt/tomcat
Catalina Home:      /opt/tomcat
Catalina PID:       

有人知道那些额外的 -Xms 和 -Xmx 参数可能来自哪里吗?我已经尝试过,也将 $CATALINA_OPTS 添加到 setenv.sh 文件,但我只是在 catalina.out 日志中出现了第三组 JVM 参数。

好像和下面类似但是没有答案: Tomcat java.lang.OutOfMemoryError: Java heap space

在我的 tomcat 配置中,我配置了以下文件来设置一些系统默认值: /etc/systemd/system/tomcat.服务

其中包含以下行(以及其他行):Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'

我没想到配置会在 $CATALINA_HOME.

以外的位置