HeapStats/jp

From IcedTea

Jump to: navigation, search

[English]

軽量な HotSpot JVM 監視・解析ツール

Contents

1 ニュース

HeapStatsがDuke's Choice Award 2016を受賞しました!

https://www.oracle.com/javaone/dukes-choice-award.html


HeapStatsの開発がGitHub経由でも行えるようになりました。ぜひご参加ください! (2016/1/19)

https://github.com/HeapStats/heapstats

本サイトに新しいドキュメントを追加しました。(2015/3/30).


以前のニュース

2 HeapStatsとは?

HeapStats とは、JavaVM のヒープやGC状況を監視する軽量なツールで、エラーの兆候を検知してSNMPのようなリアルタイムなアラートを発します。生成するログはかなり小さいもので、GUIツールで解析することができます。

HeapStatsは、次の二つのプログラムで構成されます:

  • エージェント(agent) - JavaVMの情報を収集するJVMTIエージェントプログラムです。
  • アナライザ(analyzer) - 上記の情報を解析する Javaアプリケーションプログラムです。

HeapStats メーリングリストで議論が行われています。ご参加ください !

2.1 最新バージョン

HeapStats 2.0 系の新しいバージョンアップデート HeapStats 2.0.3 が2016年11月15日にリリースされました。

HeapStats 2.0.3 (2016/11/15) ダウンロード

2.0.3 (2016/11/15)

  • マイナーアップデート
    • 極めて稀にハングアップするバグの修正。
      • Bug 3225: JVM may hang when deadlock detector and safepoint are conflicted
    • Analyzer や CLI の機能拡張・改善
      • Bug 3000: Color of enabled exclude filter is difficult to understand
      • Bug 3002: HeapStats CLI should show ID in each subcommand
      • Bug 3195: Add property for tick marker on X axis
      • Bug 3197: Add a validation of reftree_fontsize
    • その他のバグの修正

2.1.1 過去のバージョン

過去のバージョンはこちら

2.1.2 HeapStatsのバージョン番号

HeapStatsのバージョン番号は、4つのセグメントで表現されます。

x.y.z-r

  • xとy
    • メジャーバージョン
    • この番号がインクリメントされる場合、HeapStatsは大きな機能追加やアルゴリズム追加が発生します。
  • z
    • マイナーバージョン
    • この番号がインクリメントされる場合、HeapStatsは細かなバグ修正や機能向上・拡張が行われています。
  • r
    • リビジョン
    • 通常、この番号は現れません。
    • この番号がインクリメント(出現)される場合、HeapStatsはパッケージング上の問題、または重大なバグ、セキュリティ問題の修正が行われています。

2.2 ライセンス

HeapStats エージェントとアナライザは GNU General Public License, version 2 のもとに公開されています。

2.3 アナライザのスクリーンショット

Analyzer

3 HeapStatsの利用方法

3.1 監視対象リスト

HeapStats エージェントはJVMとOSから様々な情報を収集します。 詳細は 収集対象の情報 をご覧ください。

3.2 ダウンロード

3.3 実行環境

  • エージェント
    • Linux(x86/x86_64アーキテクチャ)上で、OpenJDK6 以降とともに使用してください。(上記のリンクにて、RHELとFedora用のバイナリがダウンロードできます。)
      • Red Hat Enterprise Linux 5 (RHEL5): HeapStats は java-1.6.0-openjdk-1.6.0.0-1.22.1.9.8.el5_6 以降で動作します。
      • Red Hat Enterprise Linux 6 (RHEL6): HeapStats は java-1.6.0-openjdk-1.6.0.0-1.39.1.9.8.el6_1 以降で動作します。
      • OracleJDK6u18 以降とともに使用することも可能です。
    • 注意: デバッグシンボルが必要です。 OpenJDK を rpm パッケージインストールする場合、その rpm と同一バージョンの "debug info package" のインストールも必要です。
      • 例:rpm -ivh java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64.rpm java-1.7.0-openjdk-debuginfo-1.7.0.55-2.4.7.1.el6_5.x86_64.rpm java-1.7.0-openjdk-devel-1.7.0.55-2.4.7.1.el6_5.x86_64.rpm
      • さらなる注意:debuginfo パッケージは本体のパッケージと完全に同一のバージョンのものをインストールする必要があります。また、RHELとCentOSのdebuginfoパッケージを混同しないようにご注意ください。それらはファイル名やバージョンが同じだったとしても、異なるものです。
  • アナライザ
    • OpenJDK6またはOracleJDK6以降で使用して下さい。

3.4 使い方

  • エージェント
    • エージェントの rpmをインストールするか、ソースファイルをビルドします。
      • 例: rpm -ivh heapstats_agent-2.0.0-0.el7.x86_64.rpm
    • "-agentlib:heapstats"というオプションとともに、Javaプログラムを起動します:
      • (例1): java -agentlib:heapstats -version
    • "-agentpath:<path to lib>" というもう一つのオプションで直接にHeapStatsライブラリのパスを指定して起動することもできます:
      • (例2): java -agentpath:/usr/local/lib/libheapstats.so -version
    • "heapstats_*" という名前のログファイルが、カレントディレクトリに生成されます。
  • アナライザ
    • アナライザのバイナリファイルをダウンロードするか、ソースファイルをビルドします。
    • アナライザはJGraphX、 JFreeChart と JCommon ライブラリが必要です。下記サイトからダウンロードして lib ディレクトリに設置して下さい。(2.0ではこれらのライブラリはインストールバイナリに同梱されています。)
    • heapstats.jar を実行すると起動します。
      • 例: java -jar heapstats.jar
    • より詳細な情報は同梱の howtouse(_ja).txt テキストファイルをご覧ください。
  • メモリリーク解析方法

3.5 ビルド方法

3.6 設定

HeapStats エージェントとアナライザには設定ファイルがあります。

  • エージェント
    • heapstats.conf
    • RPM パッケージを使用した場合は、 /etc/heapstats/heapstats.conf にあります。
  • アナライザ

3.7 Tips

3.8 HeapStats のテクノロジー

HeapStats は HotSpot VM の実装にもとづいています。 「HeapStatsはどのようにして低オーバーヘッドを実現しているのだろう」とか、「どうやってHeapStatsはGCと同期をとっているのだろう」と思ったら、 HeapStats Technologyを見てください。

以下も参照してください。

4 Change Log

HeapStatsの最近の修正については、以下をご覧ください。

5 イメージギャラリー

Personal tools