memo

JVM, メモリー状況取得, 障害対応

コマンドいろいろ

ヒープ

ヒープダンプを取得して MemoryAnalyzer で分析

ヒープダンプに残っている文字列をカウントして多い順にソート

(参考) サイボウズエンジニアのブログ - Java トラブルシューティングガイド

ヒープ構成とコマンドライン指定

(1)EdenS0S1Old
(2)64MB
(3)12
(4)20MB
(5)811

(1) 新しいオブジェクトは Eden に割り当てられる。その後 S0 と S1 を行ったり来たりして参照が残っている(解放されなかった)場合は Old に移動される。

(2) -Xmx: 64m: Eden + S0 + S1 + Old 合計で 64MB 割り当てる

(3) -XX:NewRatio=2: Eden + S0 + S1 合計の 2倍(1対2の比率)になるよう Old領域を割り当てる

(4) -XX:NewSize=20m: Eden + S0 + S1 が 20MB になるよう割り当てる
※NewRatio か NewSize のどちらか一方を指定する(両方は指定しない)。

(5) -XX:SurvivorRatio=8: Eden : S0 : S1 の比率が 8:1:1 になるよう割り当てる

(参考) Java8のHotSpotVMからPermanent領域が消えた理由とその影響