■ Tomcat のボトルネックの探し方
* JVM の現状を確認する => Tomcat は、 Java製 で、JVM上で動いているので。
JVM の現状を確認するには...
【1】jps コマンド ... 起動中のJVMプロセスを一覧表示 【2】jstatコマンド ... JVMのメモリ状況を表示
コマンド例
# jps コマンドを実行 jps 4309 Bootstrap <= Tomcat のプロセスを表示 ... # jstat コマンドを実行 jstat -gcutil 4309 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 97.02 70.31 66.80 95.52 89.14 7 0.300 0 0.000 0.300 ...
補足
* S0/S1 : Survivor領域 * E : Eden領域 * YGC/YGCT : GC / そのかかった時間 * FGC/FGCT : Full GC / そのかかった時間 << ★ ★が頻発すると黄色信号
■ メモリ最大/初期使用量を設定する
* CATALINA_OPTSに以下の設定に明示的に値を指定する + -Xms:メモリ初期使用量(ヒープ領域起動時(JVM起動時)のサイズ) + -Xmx:メモリ最大使用量(ヒープ領域の最大サイズ) + -XX:NewSize:New領域のサイズ + -XX:MaxNewSize:New領域の最大サイズ + -XX:SurviorRation=:From/To領域の使用比率 + -XX:MaxTenuringThreshold:New領域からOld領域に移動する閾値 + -XX:TargetSurvivorRatio:Survior領域の閾値
設定変更
* 具体的には、 $CATALINA_HOME/bin/setenv.bat (Windows)、setenv.sh (Linux) を作成し、指定する (以下の「設定例」を参照)
設定例
$CATALINA_HOME/bin/setenv.sh (Linux) #!/bin/sh CATALINA_OPTS="-Xmx512m -Xms256m"
設定確認
* 「jps -v」で表示できる
設定値目安
* メモリ最大使用量(-Xmx) : 搭載メモリの半分程度 * メモリ初期使用量(-Xms) : Xmxの半分程度
参考文献
https://docs.oracle.com/cd/E53142_01/integrator.311/integrator_install/src/cli_ldi_server_config.html
http://www.kumoyanet.com/514/
https://groupsession.jp/support/setup_08.html