前へ 目次 索引 DocHome 次へ |
iPlanet Web Server, Enterprise Edition サーブレットに関するプログラマーズガイド |
付録 D サーブレットのリモートプロファイリング
サーバ側のパフォーマンスのボトルネックを見つけるために、プロファイラを使って、iPlanet Web Server 上でリモートプロファイリングを行うことができます。 この付録では、次の 2 つのプロファイラについて説明します。
Optimizeit! プロファイラ
Optimizeit! プロファイラ
Optimizeit! は、次の Intuitive Systems の Web サイトで購入できます。http://www.optimizeit.com/index.html
次の指示に従って Optimizeit! をインストールすることで、Optimizeit! が iPlanet Web Server 6.0 に統合されます。
リモートプロファイリングを有効にするには、必要に応じて jvm12.conf ファイルに次のような変更を行います。
jvm.enableClassGC=0
jvm.option=-Xrunoii
jvm.profiler=optimizeit
java.compiler=NONE
OPTITDIR=optimizeit_root_dir/OptimizeIt30Dサーバがこの構成で起動したら、プロファイラを接続できます (詳細は、Optimizeit! のマニュアルを参照)。
また、プロファイラの所有する jar ファイルおよび dll ファイルをインクルードするために、PATH システム変数および NSES_CLASSPATH システム変数を更新します。
注 構成オプションのいずれかが指定されていないか正しくない場合、プロファイラに iPlanet Web Server のパフォーマンスに影響する問題が発生することがあります。
HPROF プロファイラ
HPROF は、Java 2 SDK で提供される簡単なプロファイラエージェントです。 HPROF は動的にリンクされるライブラリで、JVMPI と相互に作用し、ASCII 形式またはバイナリ形式でファイルまたはソケットにプロファイリング情報を書き出します。 この情報は、HAT などのプロファイラフロントエンドツールによってさらに処理されます。HPROF は CPU の利用状況、ヒープ割り当て統計、およびモニター競合プロファイルを表示できます。 また、すべてのヒープダンプや、Java 仮想マシンのすべてのモニターやスレッドの状態をレポートすることもできます。 HPROF プロファイラの詳細は、次の Web サイトの JDK マニュアルを参照してください。
http://java.sun.com/products/jdk/1.2/docs/guide/jvmpi/jvmpi.html#hprof
UNIX 上で HPROF プロファイルを使用するには、次の手順に従ってください。
HPROF プロファイルを有効にするために、次のように、jvm12.conf ファイルを編集します。
jvm.printErrors=2
jvm.profiler=hprof
jvm.option=-Xrunhprof:options
#jvm.option=-Xrs must be commented out
java.compiler=NONE
iPlanet Web Server の起動スクリプトの行も変更する必要があります。 起動スクリプトファイルは、server_root/https-server_id/start です。
- HPROF を iPlanet Web Server で使うための推奨オプションは、次のとおりです。
- jvm.option=-Xrunhprof:file=/tmp/hprof.txt,heap=all,format=a
- または
- jvm.option=-Xrunhprof:file=/tmp/hprof.txt,cpu=samples,format=a
- HPROF の構文は、次のとおりです。
- -Xrunhprof[:help]|[:option=value,option2=value2, ...]
- help を使って、HPROF に渡すことができるオプションを列挙します。 出力結果は、次のとおりです。
- Hprof usage: -Xrunhprof[:help]|[:<option>=<value>, ...]
Option Name and Value Description Default
--------------------- ----------- -------
heap=dump|sites|all heap profiling all
cpu=samples|old CPU usage off
format=a|b ascii or binary output a
file=<file> write data to file java.hprof
(.txt for ascii)
net=<host>:<port> send data over a socket write to file
depth=<size> stack trace depth 4
cutoff=<value> output cutoff point 0.0001
lineno=y|n line number in traces? y
thread=y|n thread in traces? n
doe=y|n dump on exit? y
起動スクリプトを実行して、サーバを起動します。 サーバはフォアグラウンドで稼動するので (手順 2 で変更)、コマンドプロンプトは、サーバが停止した後にのみ返されます。
- PRODUCT_BIN=uxwdog
- の行を、次のように変更します。
- PRODUCT_BIN=ns-httpd
別のウィンドウまたは端末で、サーバプロセスのプロセス ID を探します。
次の SIGQUIT 信号 (信号 3) を子プロセスに送ります。
- % ps -ef | grep ns-httpd
- このコマンドは、2 つの ns-httpd プロセスを列挙します。 PPID (親プロセス ID) のカラムを見て、2 つのプロセスのどちらが親プロセスでどちらが子プロセスかを判断します。 子プロセス ID の PID (プロセス ID) に注意してください。
数字の 6 を入力し、Enter キーを押して、メニューのオプション 6 を選択します。
- % kill -QUIT child_PID
- これにより、起動スクリプトが起動されたウィンドウに、次の ASCII メニューが表示されます。
- % start
iPlanet-WebServer-Enterprise/6.0
[LS ls1] http://test, port 9000 ready to accept requests
Default selection: alloc and heap dump
startup: server started successfully
SIGQUIT
A SIGQUIT has been received. Do you want to:
[ 0 ] continue program
[ 1 ] check & print one deadlock
[ 2 ] check & print all deadlocks
[ 3 ] dump thread stacks
[ 4 ] dump lock registry
[ 5 ] heap inspection
[ 6 ] hprof dump
[ 7 ] continue program
Type number corresponding to selected action:
0 を入力し、Enter キーを押して、プログラム (Web サーバ) を続行します。
- これにより、HPROF データが jvm12.conf の jvm.option 行で指定されたファイル (たとえば、/tmp/hprof.txt) に保存されます。
さらに HPROF プロファイルを取り込むためには、手順 6 と 7 を繰り返します。
Web サーバを終了するには、別のウィンドウから終了スクリプトを実行します。
手順 1 と 2 の変更を取り消して、Web サーバを元の構成に戻します。
- % ./stop
前へ 目次 索引 DocHome 次へ
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.
Last Updated September 17, 2001