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 最新バージョン

2.1.1 バージョン 2.0

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

HeapStats 2.0.2 (2016/09/01) ダウンロード

2.0.2 (2016/09/01)

  • マイナーアップデート
    • JDK 9 への対応
      • Bug 3057: [JDK 9] HeapStats Analyzer could not start on JDK 9
    • JMX を経由した実行を正しく行う修正
      • Bug 2847: LogLevel cannot change through JMX.
      • Bug 2848: Show new configuration when it changed through JMX.
      • Bug 2870: JVM crash when oneway option is changed through JMX.
    • その他のバグの修正

2.0.1 (2016/02/05)

  • マイナーアップデート
    • 幾つかのオプションを正しく読むように修正: archivefile, logfile, kill_on_error.
      • Bug 2692: Incorrect option name in heapstats.conf
    • 新しい HeapStats Analyzer をより使いやすく改善
      • Bug 2745, Bug 2716, Bug 2718, and more fixes.
    • MIB Object type name を変更
      • Bug 2793: MIB object type name fix
    • その他のバグの修正を行いました
    • GitHub にトランクリポジトリを公開しました (https://github.com/HeapStats/heapstats)
      • 貢献 (Contribution) は常に大歓迎です!

2.0.0 (2015/10/29)

  • 以下の新機能を含む新メジャーバージョン:
    • スレッド状態の記録
    • 参照追跡、デッドロック検知、スレッド状態記録のオン・オフスイッチ
    • CPU最適化済みパッケージ群を1パッケージへ統合
    • JavaFXを使用した新しいGUI
    • その他
      • Javaプロセスの探索
      • アナライザのコマンドラインユーザインタフェース

2.1.2 バージョン 1.1

HeapStats 1.1 系の新しいバージョンアップデート HeapStats 1.1.4 が2016年4月28日にリリースされました。 本バージョンはメンテナンスモードです。

HeapStats 1.1.4 (2016/4/28) ダウンロード

1.1.4 (2016/04/28)

1.1.3 (2015/5/28)

  • マイナーアップデート
    • SNMP に利用している Private Enterprise Number (PEN) を公式のものに変更
      • もし、ツールでSNMPトラップを利用している場合は、PEN の設定値を "123456" から "45156" に変更してください
    • デフォルト設定が下記のバグ修正によって変更しました
      • Bug 2017: JVM may crash with taking interval SnapShot when concurrent GC is occurred.
        • コンカレント GC を利用している場合、"snapshot_interval" は強制的に 0 となりました
      • Bug 2114: Default values are different from binary-builtin and heapstats.conf.
        • ビルトイン設定値が、設定ファイル (heapstats.conf) のデフォルト値と同一になりました
    • その他のバグの修正を行いました

1.1.2 (2014/8/22)

  • マイナーアップデート
    • systemd/journaldのサポート

1.1.1 (2014/3/31)

  • マイナーアップデート
    • パフォーマンスの改善
    • JDK 8 GA の機能サポート
    • 新しいロゴの反映

1.1.0-1 (2013/10/31)

  • RPMの軽微な修正
    • snmpのためのMIBファイルを同梱

1.1.0 (2013/9/10)

  • 主な新しい機能
    • オブジェクト間参照関係の追跡

2.1.3 バージョン 1.0

HeapStats 1.0 系の最新バージョンである HeapStats 1.0.5 が 2016年4月28日にリリースされました。 本バージョンはメンテナンスモードであり、新機能の追加は行われません。

HeapStats 1.0.5 (2016/4/28) ダウンロード

1.0.5 (2016/04/28)

1.0.4 (2015/5/28)

  • マイナーアップデート
    • SNMP に利用している Private Enterprise Number (PEN) を公式のものに変更
      • もし、ツールでSNMPトラップを利用している場合は、PEN の設定値を "123456" から "45156" に変更してください
    • デフォルト設定が下記のバグ修正によって変更しました
      • Bug 2017: JVM may crash with taking interval SnapShot when concurrent GC is occurred.
        • コンカレント GC を利用している場合、"snapshot_interval" は強制的に 0 となりました
      • Bug 2114: Default values are different from binary-builtin and heapstats.conf.
        • ビルトイン設定値が、設定ファイル (heapstats.conf) のデフォルト値と同一になりました
    • その他のバグの修正を行いました

1.0.3 (2014/8/22)

  • マイナーアップデート
    • systemd/journaldのサポート

1.0.2 (2014/3/31)

  • マイナーアップデート
    • パフォーマンスの改善
    • JDK 8 GA の機能サポート
    • 新しいロゴの反映

1.0.1(2013/9/2)

  • 主な変更点
    • パフォーマンスの向上
    • Java Heap の監視

1.0.0(2013/4/22)

  • 最初のHeapStats 1.0 系リリース

2.1.4 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