Interstage Application Server トラブルシューティング集 |
目次
索引
![]() ![]() |
付録B Javaツール機能 | > B.3 Qualyzer |
性能情報分析は、次の2つのステップで行います。
java -Xrunfts:[OPTIONS] クラス名 |
java -jar fts.jar [help] [version] [data=folder] [ofile=file] [heap[,s=1|2|3|4] [port=n]] [cpu] [sample] [trace[,a=ave][,s=score][,t=token[,negative]]] |
情報収集しているJava VMのプロセスに対して、SIGQUITを発行し、情報収集を停止・再開させることができます。対象となる情報はメモリ/GC情報とサンプリング情報です。
kill -QUIT process-id
情報収集によって生成されるデータファイル名は以下のとおりです。ただし、オプションにより生成されないファイルもあります。
ファイル名
保存データ
オプション
a.evt
イベント情報
heap
class.lst
クラス名リスト
cpu,trace
cpu.smp
サンプリング情報
sample
method.id
メソッドリスト
cpu,sample,trace
mth.2c
CPU情報
cpu
trc.m2
メソッドトレース情報
trace
“実行形式”で示した各ステップのオプションを説明します。
オプションは","(カンマ)で区切って複数指定できます。
ただしheap、cpu、sampleおよびtraceオプションを同時に指定できません。
d=folder
性能情報格納先ディレクトリを、folderに指定します。ディレクトリは存在している必要があります。
省略値は、Java VMの作業ディレクトリです。
このオプションで指定されたディレクトリの下に、qua.${PID}というディレクトリが作成されます。${PID}は性能情報収集されているJava VMのプロセスIDです。
各データファイルは、このディレクトリの下に作成されます。log=file
性能情報収集のログの出力先ファイル名を指定します。パスは存在している必要があります。
省略した場合、標準エラー出力に出力されます。g=0|1
起動時から性能情報収集するかどうか指定します。
- g=0:性能情報収集を一時停止させた状態で起動されます。
- g=1:起動時から性能情報収集されます。省略値です。
性能情報収集を開始/終了させるには、性能情報収集しているJava VMのプロセスに対して、ssbコマンド(Windows)またはSIGQUIT(Solaris OE/Linux)を発行します。
b=0|1|2|3|4
ssbを利用した性能情報収集の一時停止・再開・出力を行えるようにします。ssbの使用方法は“情報収集制御の方法”を参照してください。
- b=0 :ssbを利用しない場合に指定します。省略値です。
- b=1またはb=3:Java VMが単独で動作している環境で、ssbを利用する場合に指定します。
- b=2またはb=4:Java VMが複数で動作している環境で、ssbを利用する場合に指定します。
注) b=1(b=2)とb=3(b=4)のどちらを指定するかは動作環境に依存します。そのため、b=1(b=2)で正しく動作しなかった場合、b=3(b=4)を指定してください。
heap=0|1|2|3
メモリ/GC情報収集のタイミングを指定します。
- heap=0
メモリ/GC情報を収集しません。省略値です。- heap=1
メモリ/GC情報を、収集します。- heap=2
メモリ/GC情報を、2秒ごとに収集します。
serverオプションと同時に指定する必要があります。- heap=3
メモリ情報のみを、2秒ごとに収集します。
GCに関する情報は収集しません。
serverオプションと同時に指定する必要があります。port=n
リモートマシンでメモリ/GC情報を収集する場合に指定します。
リモート側へ情報を送信するために利用するport番号を、nに指定します。
serverオプションと同時に指定する必要があり、heapオプションの指定による情報収集についてのみ有効です。server=host
リモート情報収集機能を利用する場合に指定します。
リモート側のホスト名またはIPアドレスを、hostに指定します。
portオプションと同時に指定する必要があり、heapオプションの指定による情報収集についてのみ有効です。cpu=0|1
CPU情報を収集するかどうか指定します。
- cpu=0:CPU情報を収集しません。省略値です。
- cpu=1:CPU情報を収集します。
本オプションを、Solaris 8 OEで使用する時は環境変数“LD_LIBRARY_PATH=/usr/lib/lwp”を指定してください。
sample=n
サンプリング情報を収集する際のインターバル時間を指定します。
- n=0 :サンプリング情報を収集しません。省略値です。
- n>=1:nをサンプリングのためのインターバル時間(ミリ秒)として、サンプリング情報を収集します。
指定できる有意義な最小時間は、システムに依存するため、指定した時間によっては有効な値を得られない場合があります。
trace=n
メソッドトレース情報を収集する際のトレースの深さを指定します。
- n=0 :メソッドトレース情報を収集しません。省略値です。
- n>=1:nをトレースの深さとして、メソッドトレース情報を収集します。nの値を大きくとると実行時間は長くなります。
本オプションを、Solaris 8 OEで使用する時は環境変数“LD_LIBRARY_PATH=/usr/lib/lwp”を指定してください。
help
ヘルプがコンソールに出力されます。
version
バージョン情報がコンソールに出力されます。
data=folder
性能情報格納先ディレクトリを、folderに指定します。
省略値は、Java VMの作業ディレクトリです。ofile=file
テキストデータの出力先ファイル名を、fileに指定します。パスは存在している必要があります。
- 本オプションを指定した場合
- 同時にportオプションを指定した場合
出力ファイルは1時間置きに作成されます。それ以前にすでに作成されていれば、ナンバリングされて最大23個までバックアップされます。
出力ファイル生成例:
ofile=C:\temp\heap.txtが指定された場合、以下のようなバックアップファイルが生成されます。
C:\temp\heap.txt.01
C:\temp\heap.txt.02
:
C:\temp\heap.txt.23- 同時にportオプションを指定しない場合
GUIによるデータの表示は行われません。- 本オプションを指定しない場合
GUIによるデータの表示が行われます。heap
メモリ/GC情報が表示されます。
s=0|1|2|3|4
heapオプションのサブオプションです。
GUI表示時のタイムスケールを指定します。
省略値は、s=0です。port=n
リモート情報収集機能を利用する場合、利用するport番号を、nに指定します。
heapオプションと同時に指定する必要があります。cpu
CPU情報が表示されます。
sample
CPUサンプリング情報が表示されます。
trace
メソッドトレース情報が表示されます。
a=ave
traceオプションのサブオプションです。
メソッドトレース情報のトータルスコアに対するパーセンテージによる表示の上限を、aveに指定します。0以上100以下の値が指定可能です。
省略値は、a=0です。
例) a=5を指定した場合、スコア値が5%以上となるメソッドのみが表示されます。s=score
traceオプションのサブオプションです。
スコア値による表示の上限を、scoreに指定します。
省略値は、s=0です。t=token
traceオプションのサブオプションです。
メソッド名による表示制限をする場合に、絞込み条件とする文字列を、tokenに指定します。
指定した文字列を含むメソッド名に表示制限されます。
複数の条件文字列を指定する場合は、本サブオプションを複数指定します。negative
traceオプションのサブオプションです。
tサブオプションで指定した文字列を含まないメソッド名に表示制限されます。
情報表示機能のheap、cpu、sampleまたはtraceオプションを指定すると表示される以下の画面について説明します。
縦軸をメモリサイズ、横軸を時間としてヒープ使用状況をグラフ表示します。
heapオプションを指定すると以下のような画面が表示されます。
画面下部の[ズーム]コンボボックスで、横軸の時間軸スケールを変更できます。
また、[消費メモリ]、[利用可能メモリ]、[GC実行中]の各チェックボックスで、グラフの着色表示ができます。
以下の図は[GC実行中]をオンにしてそれ以外をオフにしたグラフです。
さらに[詳細情報]ボタンを押下して、ヒープ使用状況プロパティダイアログを表示できます。
リモートマシン上のメモリ/GC情報を、リアルタイムに表示できます。
以下の手順でリアルタイム表示します。
使用するport番号は12345、リモートマシン名をremote-machineとします。
java -jar fts.jar heap port=12345 |
以下のような画面が表示されます。
java -Xrunfts:heap=2,port=12345,server=remote-machine |
以下のようにリアルタイムに情報表示されます。
リアルタイム表示している画面を終了させると、情報収集している側のJava VMが終了しますのでご注意ください。
メソッドごとの呼出し回数とCPU時間を表示します。
cpuオプションを指定すると以下のような画面が表示されます。
画面上部の[並べ替え条件]コンボボックスで、メソッド表示の並びを変更できます。
また、メソッドの名前部分をダブルクリックするとメソッド情報が表示されます。
画面下部の絞込み条件指定パネルから、表示条件を指定できます。
[絞り込みタイプ]コンボボックスから絞込み条件を選択します。
[絞り込みタイプ]に“ランク”を選択した場合、指定されたランク以内のメソッドに表示が制限されます。
[絞り込みタイプ]に“回数”を選択した場合、指定された回数以上のメソッドに表示が制限されます。
[絞り込みタイプ]に“文字列”を選択した場合、テキスト入力域に指定した空白で区切られた複数文字列を含むメソッドに表示が制限されます。ただし、テキスト入力域は英文字のみ入力可能です。
また、表示された[指定条件の否定]チェックボックスをオンにすると、テキスト入力域に指定された文字列を含まないメソッドに表示が制限されます。
タイプ別に指定された条件は重複して絞り込みを行います。すべての条件を設定すると、“ランク100位以内、かつ、回数や時間10000以上、かつ、javaという文字列を含むメソッド”のような指定になります。
メソッドごとのサンプリング時間を表示します。
sampleオプションを指定すると以下のような画面が表示されます。
メソッドの名前部分のダブルクリックによるメソッド情報の表示や、表示条件の指定は、CPU情報表示画面と同様に行えます。
メソッドごとのメソッドトレースを表示します。
traceオプションを指定すると以下のような画面が表示されます。
各行は以下のように構成されています。
[展開/非展開] - 総CPU時間に対する当該メソッドの割合 - CPU時間 - 実行回数 - メソッド名
[■ボタン]をクリックするとメソッドのトレースルートが展開されます。[□ボタン]をクリックするとトレースルートが閉じられます。トレースルートは複数ルートへの分岐点または最下層まで展開されます。
メソッドトレースのトップに現れるCPU時間/実行回数は、そのメソッドを呼び出しているすべてのトレースルートの合計を表しています。また、メソッドトレース上に現れるCPU時間/実行回数はそのメソッド自身のCPU時間/実行回数ではなく、そのメソッドを通過するトレースルートでのメソッドトレースのトップに現れるメソッドに対するCPU時間/実行回数を表しています。
メソッドの名前部分のダブルクリックによるメソッド情報の表示や、表示条件の指定は、CPU情報表示画面と同様に行えます。
目次
索引
![]() ![]() |