TomcatのGCログ出力とヒープ関連の設定
↓のシェルスクリプトを作成
【CATALINA_HOME/bin/env.sh】
#!/bin/sh
date=$(date +%Y-%m-%d-%H%m%S)
gc_opts="-Xloggc:${CATALINA_HOME}/logs/gc.log.${HOSTNAME}.${date} -XX:+PrintGCDetails"
heap_opts="-Xmx1024m -Xms1024m -XX:NewSize=256m -XX:PermSize=128m -XX:NewRatio=2 -XX:SurvivorRatio=25 -XX:+UseParallelGC -XX:ParallelGCThreads=4"
JAVA_OPTS="-server $heap_opts $gc_opts"
次に、CATALINA_HOME/bin/catalina.sh
の先頭に↓を追加
. `dirname $0`/env.sh
これでCATALINA_HOME/logsに
gc.log.HOSTNAMe.2008-10-13-100851
みたいなファイル名でGCのログが出力されるようになる。
ヒープ関連のパラメータは
-Xms → ヒープ全体の初期値。
-Xmx → ヒープ全体の最大値。
-XX:NewSize → New領域の初期値。
-XX:PermSize → Permanent領域の初期値。
-XX:NewRatio → New領域とOld領域の比率(2だとnew:old = 1:2)。
-XX:SurvivorRatio → Survivor領域とEden領域の比率(25だとsurvivor:eden = 1:25)。
-XX:+UseParallelGC → パラレルGC→New領域のGC処理を複数スレッドで。
-XX:ParallelGCThreads → パラレルGCを行なうスレッド数。CPU数で良いと思う。
Permanent領域っていうのは、クラスとかメソッドの情報が格納されるらしく、クラスとかjspがたくさんあれば多めに取った方が良いということらしい。
【CATALINA_HOME/bin/env.sh】
#!/bin/sh
date=$(date +%Y-%m-%d-%H%m%S)
gc_opts="-Xloggc:${CATALINA_HOME}/logs/gc.log.${HOSTNAME}.${date} -XX:+PrintGCDetails"
heap_opts="-Xmx1024m -Xms1024m -XX:NewSize=256m -XX:PermSize=128m -XX:NewRatio=2 -XX:SurvivorRatio=25 -XX:+UseParallelGC -XX:ParallelGCThreads=4"
JAVA_OPTS="-server $heap_opts $gc_opts"
次に、CATALINA_HOME/bin/catalina.sh
の先頭に↓を追加
. `dirname $0`/env.sh
これでCATALINA_HOME/logsに
gc.log.HOSTNAMe.2008-10-13-100851
みたいなファイル名でGCのログが出力されるようになる。
ヒープ関連のパラメータは
-Xms → ヒープ全体の初期値。
-Xmx → ヒープ全体の最大値。
-XX:NewSize → New領域の初期値。
-XX:PermSize → Permanent領域の初期値。
-XX:NewRatio → New領域とOld領域の比率(2だとnew:old = 1:2)。
-XX:SurvivorRatio → Survivor領域とEden領域の比率(25だとsurvivor:eden = 1:25)。
-XX:+UseParallelGC → パラレルGC→New領域のGC処理を複数スレッドで。
-XX:ParallelGCThreads → パラレルGCを行なうスレッド数。CPU数で良いと思う。
Permanent領域っていうのは、クラスとかメソッドの情報が格納されるらしく、クラスとかjspがたくさんあれば多めに取った方が良いということらしい。
この記事のトラックバックURL
http://ysmt.blog21.fc2.com/tb.php/224-f6d2fcc2
