CodeZine(コードジン)

特集ページ一覧

知らないなんてもったいない! 障害発生の原因を洗い出すOSSのJavaVM解析支援ツール「HeapStats」を使ってみよう

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/12/19 14:00

目次

アナライザによるJVMの解析

 次に、JVM監視エージェントで収集した情報を、アナライザによって解析してみます。

 

設定

 アナライザで表示する項目などの設定は、アナライザを配置したディレクトリ直下にあるheapstats.propertiesで行います。以下に主な設定項目を記載します。これ以外の設定項目についてはデフォルト設定ファイル内のコメント、またはHeapStatsコミュニティサイトをご覧ください。

アナライザの主な設定項目
項目 デフォルト値 説明
language en 表示言語の設定。英語の場合はen、日本語の場合はjaを指定する
replace false 差分計算画面、スナップショット画面に表示するクラス名形式の設定。trueでJavaの完全修飾名、falseでJNIの型シグニチャーで表示する
logfile redhat-release,cmdline,status,smaps,limits 詳細ログ画面で表示する、障害情報アーカイブ中のログファイルを列挙する。カンマ区切りで指定する
bgcolor 0 各種チャートの背景色の設定。グラフの系列と背景色が同化して見づらい場合に設定する。16進数で0xRRGGBBという形で指定する(R:赤、G:緑、B:青)。【例】赤は0xFF0000、黄色は0xFFFF00

 

 基本的にデフォルトの設定で問題ありませんが、以降の説明では「language」を“ja”に設定して日本語表示にしています。

 

収集ログの読み込みと統計チャートの表示

 JVM監視エージェントは収集したログやスナップショットといった情報を、それぞれファイルとして出力します。アナライザで情報を解析するには、これらのファイルをアナライザをインストールしたマシンに配置し、読み込みます。

 収集ログファイル(heapstats_log.csv)を読み込むには、まず次図にある赤枠内の[ファイル選択]ボタンをクリックし、「開く」ダイアログボックスを表示します。

収集ログの読み込み
収集ログの読み込み

 

「開く」ダイアログボックス
「開く」ダイアログボックス

 

 読み込みたい収集ログファイルを選択し、[開く]ボタンを押してファイルを読み込むと、次図のようにファイル名(青点線枠)やログ収集期間(緑点線枠)が表示されます。期間選択で解析を行う期間を選択し、赤枠の[OK]ボタンをクリックします。ログの期間が長い場合は読み込みに時間がかかることがあります。その場合には、解析する期間を絞り込んでみてください。

収集ログの読み込み後
収集ログの読み込み後

 

 しばらくすると、アナライザにより次図のようにグラフィカルな「統計チャート」が表示されます。ここで、期間内のCPU、メモリ、スレッドに異常がないかを確認します。

統計チャート
統計チャート

 

 なお、統計チャートの表示項目の意味は次表のとおりです。

 

統計チャートの表示項目の意味
チャート 表示項目 概要
JavaCPU
(JavaCPU使用率)
user JavaアプリケーションのCPU使用率のうちユーザが占める割合
system JavaアプリケーションのCPU使用率のうちシステムが占める割合
CPU
(システムCPU使用率)
user システム全体のユーザ処理に利用されたCPU時間の累計
nice システム全体の低優先度下でのユーザ処理に利用されたCPU時間の累計
system システム全体のシステム処理に利用されたCPU時間の累計
idle システム全体のアイドル時間に利用されたCPU時間の累計
I/O システム全体のI/O処理待機に利用されたCPU時間の累計
irq システム全体の割込処理に利用されたCPU時間の累計
softirq システム全体のソフト割込処理に利用されたCPU時間の累計
steal 同一マシン上の他の仮想環境処理に利用されたCPU時間の累計
guest システム内の仮想ゲスト環境処理に利用されたCPU時間の累計
JavaMemory
(Javaメモリ使用量)
RSS(KB) プロセスが使用中の物理メモリサイズ(キロバイト単位)
VSZ(KB) 総仮想メモリサイズ(キロバイト単位)
Threads
(スレッド)
threads Javaアプリケーションの動作中スレッドの数
monitor Java内部でモニタ競合が発生した回数
safepoint Javaアプリケーションの停止回数
safepointtime(msec) Javaアプリケーションの停止時間(ミリ秒)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 久保田 祐史(クボタ ユウジ)

    日本電信電話株式会社 OSSセンタ所属。OpenJDKを中心とした OSS製品のテクニカルサポートを担当。パフォーマンス劣化からコア解析までなんでもござれの火消し役。 IcedTea Committer. JavaOne2014 Speaker. HeapStatsやJVMについて発表したりし...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5