ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server トラブルシューティング集

A.3 Qualyzer

■Qualyzerとは

  QualyzerはJavaプログラムの性能ボトルネック部分を検出し、利用者のプログラムチューニングや性能問題解決を支援するツールです。
  Qualyzerは、以下の2つの機能を持ちます。

  Qualyzerは、JDK/JRE 1.4と5.0で使用可能なツールです。(ただし、JDK/JRE 5.0においては、Javaオプションの指定に制限があります。)

性能情報分析機能

  性能分析機能は、以下の4種類のデータを採取し、Javaプログラムの性能チューニングを支援します。

メモリ(ヒープ)ダンプ機能

  メモリ(ヒープ)ダンプ機能は、Javaプログラムのメモリ(ヒープ)使用に関する性能トラブルの原因究明を支援します。

メモリリーク

  Javaのメモリ管理はJava VMが備えるガーベジコレクタ(GC)が自動的に行います。使用を終えたオブジェクトの領域をGCが解放しますが、GCはオブジェクトを保持している変数や配列要素が存在しないことが確認されて、はじめてそのオブジェクトが「使用を終えた」と判断します。したがって、プログラマーがオブジェクトの使用を終えたつもりでも、そのオブジェクトを保持した変数や配列要素が存在している限り、GCはその領域を解放できずに残り続けることになります。このような場合をJavaのメモリリークと呼んでいます。

  Qualyzerのメモリ(ヒープ)ダンプ機能では、オブジェクト割当数、オブジェクト残存数、オブジェクトを生成したメソッドのスタックトレース、オブジェクトの参照情報、およびオブジェクトの内容を採取します。採取した情報はHTML形式で表示されます。メモリを圧迫しているオブジェクト(群)が、どこで作成され、なぜGCで回収されないのかを調査する場合に有効です。

■動作環境

サポート対象のJDK/JRE

製品添付のJDK/JRE 1.4、5.0

■注意事項

JDK/JRE 6において本機能を指定した場合

  Qualyzerの情報収集(性能情報、メモリ(ヒープ)情報)は、Java Virtual Machine Profiling Interface(JVMPI)機能により実現しています。

  JDK/JRE 6では、JVMPI機能が提供されていません。

  そのためJDK/JRE 6において本機能を指定した場合、Java VMは次のメッセージを出力して終了します。

> java -Xrunfts:sample=10 ClassName
ERROR: JVMPI, an experimental interface, is no longer supported.
Please use the supported interface: the JVM Tool Interface (JVM TI).

JDK/JRE 5.0使用時のガーベジコレクション(GC)の指定

  Qualyzerの情報収集(性能情報、メモリ(ヒープ)情報)は、Java Virtual Machine Profiling Interface(JVMPI)機能により実現しています。

  JDK/JRE 5.0でパラレルGCを使用した場合は、JVMPI機能が抑止されます。そのため、JDK/JRE 5.0ではJVMPI機能を有効にするために、javaの起動オプションに次のオプションを指定する必要があります。

  Linuxにおける文字化け

  Linux上で、Qualyzerで情報を表示させる場合、環境によっては、以下のようなメッセージが出力され、画面上の日本語が□で表示されることがあります。

Warning: Cannot convert string "-watanabe-mincho-medium-r-normal--*-140-*-*-c-*-jisx0208.1983-0" to type FontStruct

  これは表示上の問題だけで、実動作には問題ありません。
  原因は、フォントの設定が正しくないためです。使用するXサーバで利用可能なフォントに応じて, font.propertiesを修正する必要があります。
  font.propertiesの詳細は、以下を参照してください。

  

  Solaris、Linux上で、Qualyzerで情報を表示させる場合、X Windowシステムが必要です。

  X Windowシステムを用意できない環境下では、ofileオプション(性能情報)、-oオプション(ヒープ情報)を指定することで文字情報(CSV形式のファイルやHTML形式のファイル)としてデータを参照することができます。

性能情報(heap情報)をCSVファイルに出力する方法の例

java -jar fts.jar ofile=heap.txt data=qua.21686 heap

ヒープ情報をCSVファイルに出力する方法の例

java -jar holmes.jar -o test -i qua.21695 -csv