前へ     目次     索引     DocHome     次へ     
iPlanet Web Server, Enterprise Edition サーブレットに関するプログラマーズガイド



付録 D   サーブレットのリモートプロファイリング


サーバ側のパフォーマンスのボトルネックを見つけるために、プロファイラを使って、iPlanet Web Server 上でリモートプロファイリングを行うことができます。 この付録では、次の 2 つのプロファイラについて説明します。



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 プロファイルを使用するには、次の手順に従ってください。

  1. HPROF プロファイルを有効にするために、次のように、jvm12.conf ファイルを編集します。


    jvm.printErrors=2
    jvm.profiler=hprof
    jvm.option=-Xrunhprof:options
    #jvm.option=-Xrs must be commented out
    java.compiler=NONE

    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. iPlanet Web Server の起動スクリプトの行も変更する必要があります。 起動スクリプトファイルは、server_root/https-server_id/start です。

    PRODUCT_BIN=uxwdog

    の行を、次のように変更します。

    PRODUCT_BIN=ns-httpd

  3. 起動スクリプトを実行して、サーバを起動します。 サーバはフォアグラウンドで稼動するので (手順 2 で変更)、コマンドプロンプトは、サーバが停止した後にのみ返されます。

  4. 別のウィンドウまたは端末で、サーバプロセスのプロセス ID を探します。

    % ps -ef | grep ns-httpd

    このコマンドは、2 つの ns-httpd プロセスを列挙します。 PPID (親プロセス ID) のカラムを見て、2 つのプロセスのどちらが親プロセスでどちらが子プロセスかを判断します。 子プロセス ID の PID (プロセス ID) に注意してください。

  5. 次の SIGQUIT 信号 (信号 3) を子プロセスに送ります。

    % 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:

  6. 数字の 6 を入力し、Enter キーを押して、メニューのオプション 6 を選択します。

    これにより、HPROF データが jvm12.confjvm.option 行で指定されたファイル (たとえば、/tmp/hprof.txt) に保存されます。

  7. 0 を入力し、Enter キーを押して、プログラム (Web サーバ) を続行します。

  8. さらに HPROF プロファイルを取り込むためには、手順 6 と 7 を繰り返します。

  9. Web サーバを終了するには、別のウィンドウから終了スクリプトを実行します。

    % ./stop

  10. 手順 1 と 2 の変更を取り消して、Web サーバを元の構成に戻します。


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated September 17, 2001