Java障害解析支援ツール “HeapStats 2.0”

技術領域
プラットホーム技術
組織名
ソフトウェアイノベーションセンタ

印刷用PDF (767.7 KB)


背景・従来課題

従来、運用中のシステムでJavaアプリケーションに障害が発生した場合、事象発生時に取得できる情報では不十分で、すぐに調査や解析を行えない課題がありました。解析に必要な情報を取り逃すと、レアケースな障害で再現の実現が困難であるなど、解析までに非常に多くの時間を要するケースが少なからずあります。
この他、従来の解析で用いられてきた情報は、取得時にシステムにかける負荷が大きく、出力するファイルサイズも巨大なため、運用中のシステムでは取得が難しいという課題もありました。

概要

Javaの障害解析に必要な情報をJava VMから低負荷に取得しグラフィカルに表示できる、オープンソース(OSS)の解析ツールです。 “HeapSats 2.0” では、従来のリソース関連情報やオブジェクト参照情報などに加えて、新たにスレッド毎のアプリケーション動作状況から遅延原因の解析を可能にするスレッド状態情報表示機能や、より使いやすい新GUI、インストールのさらなる簡易化などを実現しました。

特徴

  • 【新機能】従来からのメモリ使用量やオブジェクト参照情報等に加え、新機能のスレッド状態情報表示により、スレッドレベルの動作遅延要因の確認が可能/より使いやすい操作性を具備した新GUI/複数あったインストールパッケージを一元化 等
  • 【低負荷】障害発生時の即時解析のために、JavaVMにアタッチしたエージェントにて5%以下(SPECjvm2008のComposite resultによる測定)の低負荷で常時各種情報を取得(HeapStats 2.0 より、一部の情報については取得しない設定も可能)しており、運用中システムでも使用可能
  • 【統合的な解析ツール】 クラス別のメモリ使用量、オブジェクト参照関係、スレッド状態、サーバリソースをグラフィカルに表示し、その他の必要なログも一括して表示し解析が可能
  • 【リアルタイム】 OutOfMemoryError/デッドロックの障害発生やメモリリークの疑いをリアルタイムに検知。SNMPトラップ通知により、運用管理システムと連携した迅速な対応が可能

利用シーン

  • Javaアプリケーション開発時の試験や商用システム運用中の監視・障害解析、JavaVMのチューニング検証での活用
  • NTTグループ内における HeapStats 1.x 系の商用システムへの導入実績 37件 (2015年10月)