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

CodeZine / 2014年12月19日 14時0分

参照情報表示(展開)

 Javaの障害に悩まされたことはありませんか? 障害が発生した場合、まず速やかにサービスを復旧させ、それから原因の調査・再発の防止を行うのが一般的です。しかし、原因を探し出そうにも有用な情報が残されていなかったために解析が進まず、再び同じ障害が発生して情報が得られるまで、そのまま運用を続けるしかないことがあります。

 避けるべき状況ですが、残念なことにこのようなことは珍しくありません。解析に必要な情報を漏らさず取得するためには、サービス開始前に入念な準備が必要ですが、現実にはそこまで時間をかけられない場合もあり、往々にして準備不足となる場合があるからです。

 こういった不幸な状況を防ぐ手段の1つとして、本稿では「HeapStats」というツールを利用した障害解析方法を紹介します。

 

■HeapStatsとは

 「HeapStats」は、NTT OSSセンタが開発を行い2013年にOSS(オープンソースソフトウェア)として公開したJavaVM障害解析支援ツールです。 Javaアプリケーションにおけるメモリ不足(OutOfMemoryError)やデッドロックといった障害を素早く解決することを目的として開発されました。特に、Javaヒープメモリ内の状態など、従来は高い負荷をかけて取得する必要があった情報を、低オーバーヘッドで自動的に取得できるという特徴を備えており、様々な商用サービスや検証環境で利用されています。また、Javaに関する大規模な国際会議であるJavaOne2014でも発表を行っています。

 HeapStatsは「JVM監視エージェント」と「アナライザ」という2つのソフトウェアから構成されています。

 JVM監視エージェントは、Javaのヒープやシステムリソースの利用状況を常時収集するなど、解析に必要な情報を取り漏らさず収集します。これにより、冒頭のような情報不足で障害が再び発生するまで待つ必要がなくなります。また、障害の予兆や発生をリアルタイムに検出・通知できるので、障害が発生したときにも柔軟に対応できます。収集した情報は、アナライザによってグラフィカルに表示されるため、素早く直感的に障害を解析することができます。

 

■HeapStatsのシステム要件

 本稿執筆時(2014年12月)におけるJVM監視エージェントならびにアナライザのハードウェア要件、ソフトウェア要件は次のとおりです。

 

●JVM監視エージェント

ハードウェア要件
CPU:Intel Pentium 4以降、または互換プロセッサ メモリ:1GB以上(2GB以上を推奨) ハードディスク:128MB以上の空き容量 ソフトウェア要件
OS:x86/x86_64版Linux Java:OpenJDK 6以降[1]または、Java SE 6以降 ライブラリ:PCRE 6.6以降
Net-SNMP 5.3.1以降 [1] OpenJDKを利用する場合には、OpenJDKと同一バージョンのdebuginfoパッケージも必要です。

 

●アナライザ

ハードウェア要件
CPU:利用OS・JDKの推奨スペック メモリ:2GB以上 ハードディスク:256MB以上の空き容量 ディスプレイ:解像度1,024×768以上、HighColor(65,536色)以上 ソフトウェア要件
OS:X Window SystemなどのGUIが動作するLinuxやOS X(Mac)
または、Microsoft Windows Vista以降 Java:OpenJDK6以降、または、Java SE 6以降 各種ライブラリ:JFreeChart 1.0.13以降
JGraphX 2.5以降[2][2] JavaにJDK6を利用している場合には、JDK6に対応したJGraphX(2.5.0.3以前のバージョン)を利用する必要があります。



CodeZine

トピックスRSS

ランキング