うまいぼうぶろぐ

linuxとhttpdとperlのメモ

javaのメモリ関連のチューニング、確認方法

↑とても参考になったentry。

java起動時のoption

参考URLを参考に。logをきっちり出しましょうっていう。
特に SIGQUITでheap情報を出力(同時にFull GCも発生)させる"-XX:+PrintClassHistogram" (-verbose:gc も指定) 。OutOfMemory時にheap dumpする"-XX:+HeapDumpOnOutOfMemoryError" 等。

heap 使用状況確認

pidはjps、psなどで確認。

# jstat -gcutil -h10 18274 1000
S0    S1    E      O     P     YGC  YGCT   FGC  FGCT   GCT   
76.96  0.00  25.95  0.61  7.64    8  0.162    4  0.266  0.428
76.96  0.00  25.95  0.61  7.64    8  0.162    4  0.266  0.428

各項目の詳細はman jstat(man javaだったかも) デ。
S0、S1 - FromとTo
E - Eden
O - Old
P - Permanent
YGC - Scavenge GCの回数
YGCT - Scavenge GCの合計時間
FGC - Full GCの回数
FGCT - Full GCの合計時間
GCT - YGCT、FCTCの合計

heap 統計情報確認

# kill -3 `pid`

強制的にFull GCを走らせて、統計情報をログに出力。