はじめに
jstatをつかった際に詰まったことをまとめる
jstat起動時のつまづき
リモートデスクトップでjstatを使おうとしたら以下のようなエラーが帰ってきた
1234はJVMのPID
>jstat -gcutil 1234 1000
1234 not found
結論
リモートデスクトップでjstatを起動するときは
「PsEsec」を使わないとだめらしい
手順
PsEsecのダウンロード
上のページからPsEsecをダウンロードして
リモートデスクトップ上の任意のフォルダに格納
今回はC:\Program Files\PSTools
にしました。
パスを通す
C:\Program Files\PSTools
これを環境変数のシステム環境変数のPath
に追加
これでできるようになっているはずです。
jstatの実行
C:\Program Files\PSTools>PsEsec64.exe -s jstat -gcutil 1234 1000
リモートデスクトップのOSが64bitだったためPsEsec64.exe
を使用しました。
32bitの場合はPsEsaec.exe
で行けると思います。
出力結果のつまづき
ヘッダーの意味が分からなかったので調べた結果をまとめました。
jstat
この中の一部を抜粋
-gcutil option
ガベージ・コレクション統計データのサマリー
S0: Survivor領域0の使用率(現在の容量に対するパーセンテージ)。
S1: Survivor領域1の使用率(現在の容量に対するパーセンテージ)。
E: Eden領域の使用率(現在の容量に対するパーセンテージ)。
O: Old領域の使用率(現在の容量に対するパーセンテージ)。
M: メタスペースの使用率(現在の容量に対するパーセンテージ)。
CCS: 圧縮されたクラス領域の使用率(パーセンテージ)。
YGC: Young世代のGCイベントの数。
YGCT: Young世代のガベージ・コレクション時間。
FGC: フルGCイベントの数。
FGCT: フル・ガベージ・コレクションの時間。
GCT: ガベージ・コレクションの総時間。
S0はSurviverのFrom
S1はSurviverのTo
FromからToで使用率の遷移が分かる
OはOldの使用率
徐々に使用率が上がっていく
Mはネイティブメモリ
以前のヒープ領域といわれていた場所
16エクサバイトまで確保することが可能
この4つが分かればリソース状況が分かると思います。