技術ネタはQiitaに移りました。壁もどこぞに。

yum でインストールした Tomcat に JVM オプションを設定

TomcatJVM オプションを設定しようと思ったら、
通常、catalina.sh などを編集することになると思う。

ただ、yumTomcat をインストールした場合、
この catalina.sh は作成されず、Tomcat はデーモンとして登録される。

こんなときに、JVM オプションを設定しなければ
ならなくなったらどうしたらいいのか…。

いろいろとディレクトリをあさってみたところ、
tomcat.conf に CATALINA_OPTS というエントリを追記することで、
JVM オプションを追加できそうな雰囲気。

$ cat /usr/share/tomcat/conf/tomcat.conf
# System-wide configuration file for tomcat services
# This will be sourced by tomcat and any secondary service
# Values will be overridden by service-specific configuration
# files in /etc/sysconfig
#
# Use this one to change default values for all services
# Change the service specific ones to affect only one service
# (see, for instance, /etc/sysconfig/tomcat)
#

# Where your java installation lives
JAVA_HOME="/usr/lib/jvm/jre"

# Where your tomcat installation lives
CATALINA_BASE="/usr/share/tomcat"
CATALINA_HOME="/usr/share/tomcat"
JASPER_HOME="/usr/share/tomcat"
CATALINA_TMPDIR="/var/cache/tomcat/temp"

# You can pass some parameters to java here if you wish to
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"

# Use JAVA_OPTS to set java.library.path for libtcnative.so
#JAVA_OPTS="-Djava.library.path=/usr/lib64"

# What user should run tomcat
TOMCAT_USER="tomcat"

# You can change your tomcat locale here
#LANG="en_US"

# Run tomcat under the Java Security Manager
SECURITY_MANAGER="false"

# Time to wait in seconds, before killing process
SHUTDOWN_WAIT="30"

# Whether to annoy the user with "attempting to shut down" messages or not
SHUTDOWN_VERBOSE="false"

# Set the TOMCAT_PID location
CATALINA_PID="/var/run/tomcat.pid"

# Connector port is 8080 for this tomcat instance
#CONNECTOR_PORT="8080"

# If you wish to further customize your tomcat environment,
# put your own definitions here
# (i.e. LD_LIBRARY_PATH for some jdbc drivers)

試しに末尾へ、以下を追加してみる。

CATALINA_OPTS="-Xms512M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=1024M"

$ sudo vi /usr/share/tomcat/conf/tomcat.conf

...

# If you wish to further customize your tomcat environment,
# put your own definitions here
# (i.e. LD_LIBRARY_PATH for some jdbc drivers)

## JVM Options
CATALINA_OPTS="-Xms512M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=1024M"

最後に Tomcat を再起動して、
ただしく設定されているかどうかを確認。

$ sudo systemctl restart tomcat

$ ps aux | grep catalina
tomcat    2466  134  9.4 3170640 115440 ?      Sl   17:20   0:04 java -Xms512M -Xmx1024M -XX:PermSize=512M -XX:MaxPermSize=1024M -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
yo1000    2480  0.0  0.0 112656   968 pts/1    S+   17:20   0:00 grep --color=auto catalina

よさげ。