Help us understand the problem. What is going on with this article?

GCViewerの使い方メモ

久しぶりにJVMのGCログを確認するためにGCViewerを使ったのでメモを残しておく。

環境

  • OS: Windows 8.1
  • Java: java version "1.8.0_231"
  • Gcviewer: gcviewer-1.36-SNAPSHOT.jar

ダウンロード

以下のページでなるべく最新バージョンの「download | download mac version」のリンクをクリックし、ダウンロードする。
https://github.com/chewiebug/GCViewer/wiki/Changelog

Windowsの場合はjarファイルがダウンロードされるので、任意のフォルダに配置する。

起動

  1. gcviewerのjarをダブルクリックする
    021.PNG
    →以下の画面が表示される 002.png
  2. ウィンドウ内にGCログのテキストファイルをdrag and dropする
    →以下のような画面になる 020.png

表示の変更

  1. メニュー > View > Data Panel をチェックオフ
    →右側のデータパネルが消えて広くなる 004.png
  2. 時間列の周辺を右クリック > Log start time をチェックオン
    →時間列が時刻表示になる(GCログにタイムスタンプが入っている場合) 005.png
  3. Total Heapをチェックオン
    →トータルヒープサイズが赤で表示される
    ここでは-Xms(開始サイズ)と-Xmx(最大サイズ)を同値に設定しているため、トータルヒープサイズは横一直線になっている。 006.png
  4. Total Heapをオフにし、Tenured Generation, Young Generationをチェックオン
    →Young世代のサイズが黄色で、Tenured世代(Old世代)のサイズが紫で表示される。 通常、Young Generation + Tenured Generation = Total Heap 007.png
  5. Used Tenured Heap, Used young Heapをチェックオン
    →各世代の中のヒープ使用量が線で見えるようになる。縦線はGCによってメモリが解放されたことを表す。 008.png
  6. GCログの開始/終了がウィンドウ全体に納まるように上部のセレクトボックスで比率を調整する(★重要)。
    これをしないと、一部の範囲しか確認せずに問題ないと思っていしまう可能性がある。今回はこのタイミングで比率を調整したが、なるべく早めにやって全体を見れる状態にしてから調査を始めたほうがよい。
    グラフからわかること
  7. Young GCが結構頻繁に発生している。Yong GCによってYoung世代はほぼ解放される(灰色の線が黄色領域の下まで落ちている)
  8. Tenured世代のFull GCが2回発生している。どちらもほぼ下まで落ちているので、解放はできている。その後Tenured領域のメモリが増えていっているのが気になる。おそらくこの後再度Full GCが発生するが、その時に下まで解放されれば問題はないのではないか(自信なし) 009.png
  9. Used Heapをチェックオン
    →これまではYoung世代とTenured世代を別々に表示していたが、これでYoung世代とTenured世代の合計(=ヒープ使用量)が青で見れるようになる 010.png
  10. Full GC Linesをチェックオン
    →Full GCが黒線で見えるようになる 011.png

チェック観点

  1. Young世代のヒープ使用量が、Young GC後に下まで下がっているか。
  2. Tenured世代のヒープ使用量が、Full GC後に下まで下がっているか。

私自身、実はGCログの評価方法はよくわかっていない。
このグラフではTenured世代が増えてきているが、次のFull GCで下まで解放されれば良い、のかな?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした