Interstage Application Server/Interstage Web Server トラブルシューティング集 |
目次
索引
![]() ![]() |
付録A Javaツール機能 |
QualyzerはJavaプログラムの性能ボトルネック部分を検出し、利用者のプログラムチューニングや性能問題解決を支援するツールです。
Qualyzerは、以下の2つの機能を持ちます。
性能分析機能は、以下の4種類のデータを採取し、Javaプログラムの性能チューニングを支援します。
メモリ(ヒープ)ダンプ機能は、Javaプログラムのメモリ(ヒープ)使用に関する性能トラブルの原因究明を支援します。
Javaのメモリ管理はJava VMが備えるガーベジコレクタ(GC)が自動的に行います。使用を終えたオブジェクトの領域をGCが解放しますが、GCはオブジェクトを保持している変数や配列要素が存在しないことが確認されて、はじめてそのオブジェクトが「使用を終えた」と判断します。したがって、プログラマがオブジェクトの使用を終えたつもりでも、そのオブジェクトを保持した変数や配列要素が存在している限り、GCはその領域を解放できずに残り続けることになります。このような場合をJavaのメモリリークと呼んでいます。
Qualyzerのメモリ(ヒープ)ダンプ機能では、オブジェクト割当数、オブジェクト残存数、オブジェクトを生成したメソッドのスタックトレース、オブジェクトの参照情報、およびオブジェクトの内容を採取します。採取した情報はHTML形式で表示されます。メモリを圧迫しているオブジェクト(群)が、どこで作成され、なぜGCで回収されないのかを調査する場合に有効です。
製品添付のJDK/JRE 1.4、5.0
JDK/JRE 5.0使用時のガーベジコレクション(GC)の指定
Qualyzerの情報収集(性能情報、メモリ(ヒープ)情報)は、Java Virtual Machine Profiling Interface(JVMPI)機能により実現しています。
JDK/JRE 5.0でパラレルGCを使用した場合は、JVMPI機能が抑止されます。そのため、JDK/JRE 5.0ではJVMPI機能を有効にするために、javaの起動オプションに次のオプションを指定する必要があります。
- シリアルGCを使用する場合: “-XX:-UseParallelGC”オプション
- FJGCを使用する場合: “-XX:+UseFJGC”オプション
FJVMがサポートするGC処理の詳細は、“チューニングガイド”の“JDK/JREのチューニング”の“FJVMでサポートされるガーベジコレクション処理”を参照してください。
たとえば、性能情報収集(fts)を実行する場合は、次のようにオプションを指定します。なお、太字はユーザの入力部分で、ClassNameはクラス名です。
java -XX:-UseParallelGC -Xrunfts:sample=10 ClassName
本オプションが指定されていなかった場合、Java VMは次のメッセージを出力して終了します。
> java -Xrunfts:sample=10 ClassName
Error occurred during initialization of VM
JVMPI not supported with this garbage collector; please refer to the GC/JVMPI documentation
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
目次
索引
![]() ![]() |