Sun Java System Web Proxy Server 4.0.4 管理ガイド

統計情報によるサーバーの監視

統計機能を使用して、サーバーの現在の稼動状況を監視できます。統計情報は、サーバーが処理している要求数と、それらの要求の処理状況を示します。対話型サーバーモニターを通してサーバーが多数の要求を処理していることがわかる場合、要求数に合わせてサーバー設定またはシステムのネットワークカーネルを調整する必要がある場合もあります。統計情報の収集により Proxy Server へのオーバーヘッドが増えるため、デフォルトでは、統計情報は無効になっています。統計情報を有効にすると、サーバーは統計情報の収集および保存を開始します。

統計情報を使用可能にすると、次の分野の統計情報を表示できます。

対話型サーバーモニターで総計をレポートするサーバーの各種統計情報については、オンラインヘルプの「Monitor Current Activity」ページを参照してください。

Proxy Server の統計情報の処理

Proxy Server の統計情報の収集には、stats-xml と呼ばれる組み込み関数が使用されます。この関数はサーバーマネージャーから統計情報を表示する場合、または perfdump 関数を使用してレポートを生成する場合に有効にする必要があります。また、カスタム NSAPI 関数を使用して統計情報を監視するための条件であるプロファイリングを使用可能にするために、stats-xml 関数も使用します。サーバーで統計情報とプロファイリングを有効にすると、obj.conf ファイルの stats-init と呼ばれるサーバー関数が初期化され、統計の収集が開始されます。

Init profiling="on" fn="stats-init"

また、この命令により、ブラウザウィンドウから統計情報にアクセスできるようにする NameTrans 指令が作成されます。

NameTrans fn="assign-name" name="stats-xml" from="(/stats-xml|/stats-xml/.*)

最後に、統計情報の有効化により、NameTrans 指令が選択された場合に stats-xml 関数を処理する Service 指令が追加されます。

<Object name="stats-xml">

Service fn="stats-xml"

</Object>

統計情報が収集されると、obj.conf ファイルの Init 関数が更新されます。そのため、サーバーを停止および再起動して、これらの変更を有効にする必要があります。

次の例に、obj.conf ファイルの stats-init を示します。

Init profiling="on" fn="stats-init" update-interval="5"

また、次の値も指定できます。

次の URL から stats-xml 出力を取得できます。

http://computer_name:proxyport /stats-xml/proxystats.xml

この要求は Proxy Server の統計情報を含む XML ページを返します。ブラウザによってはブラウザウィンドウにデータを表示できますが、データを外部ファイルに保存して、外部ビューアでデータを表示する必要のあるブラウザもあります。データ分析のためにさまざまなビューで表示する統計情報の分析機能がなければ、この情報がどれだけ役に立つかが、はっきりとはわかりません。サードパーティー製ツールを使うと、このプロセスをサポートできます。解析ツールを使用しない場合、サーバーマネージャーまたは perfdump SAF から stats-xml 出力を監視することをお勧めします。

stats-xml 出力へのアクセスの制限

サーバーの stats-xml 統計情報をブラウザに表示できるユーザーを制限する場合、/stats-xml URI 用の ACL を作成する必要があります。

ACL ファイルは、obj.conf ファイルの stats-xml オブジェクト定義でも参照されるようにする必要があります。たとえば、/stats-xml URI に名前付きの ACL を作成した場合、次のようにして、オブジェクト定義の PathCheck 文の中で ACL ファイルを参照するようにする必要があります。

<Object name="stats-xml">

PathCheck fn="check-acl" acl="stats.acl"

Service fn="stats-xml"

</Object>

統計情報の有効化

パフォーマンスを監視する前に、Proxy Server で統計情報を有効にする必要があります。統計情報はサーバーマネージャーから、または obj.conf ファイルおよび magnus.conf ファイルを編集することにより行います。自動化されたツールを作成するユーザー、または監視と調整用にカスタマイズしたプログラムを作成するユーザーは、直接 stats-xml で作業する方がよい場合があります。


注意 – 注意 –

統計情報およびプロファイリングを有効にすると、サーバーのすべてのユーザーが統計情報を使用できるようになります。


Procedureサーバーマネージャーから統計情報を有効にするには

  1. サーバーマネージャーにアクセスし、「Server Status」タブをクリックします。

  2. 「Monitor Current Activity」をクリックします。

    「Monitor Current Activity」ページが表示されます。

  3. 「Activate Statistics/Profiling」の「Yes」オプションを選択して、統計情報を有効にします。

  4. 「了解」をクリックします。

  5. 「Restart Required」をクリックします。

    「Apply Changes」ページが表示されます。

  6. 「Restart Proxy Server」ボタンをクリックして、変更を適用します。

Procedurestats-xml を使用して統計情報を有効にするには

  1. obj.conf ファイルのデフォルトオブジェクトの下に、次の行を追加します。


    NameTrans fn="assign-name" name="stats-xml" from="
    (/stats-xml|/stats-xml/.*)"
  2. 次の Service 関数を obj.conf に追加します。

    <Object name="stats-xml">

    Service fn="stats-xml"

    </Object>

  3. stats-init SAF を obj.conf に追加します。

統計情報の使用法

統計情報を有効にすると、サーバーインスタンスの稼動状況に関するさまざまな情報を得ることができます。統計情報は、機能別に分類されます。

サーバーマネージャーでの統計情報の表示

この節では proxystats.xml データのサブセットをサーバーマネージャーで表示する方法について説明します。

合計、最大値、ピーク回数、Proxy Server との接続に関する情報の棒グラフ、DNS 処理、キープアライブ値、キャッシュ、サーバー要求を表示できます。

次の節では、各項目について取得できる情報の種類について説明します。

接続統計情報

サーバーマネージャーから次の接続統計情報を利用できます。

DNS 統計情報

サーバーマネージャーから次の DNS 統計情報を利用できます。

キープアライブ統計情報

サーバーマネージャーから次のキープアライブ統計情報を利用できます。

サーバー要求統計情報

サーバーマネージャーから次のサーバー統計情報を利用できます。

Procedure統計情報にアクセスするには

  1. サーバーマネージャーにアクセスし、「Server Status」タブをクリックします。

  2. 「Monitor Current Activity」をクリックします。

  3. 「Select Refresh Interval」ドロップダウンリストから、更新間隔を選択します。

    更新間隔は、表示される統計情報の更新間隔を示す秒数です。

  4. 「Select Statistics To Be Displayed」ドロップダウンリストから、表示する統計情報の種類を選択します。

    統計情報の種類については、「サーバーマネージャーでの統計情報の表示」を参照してください。

  5. 「送信」をクリックします。

    サーバーインスタンスが稼動中で、統計情報およびプロファイリングを有効にしている場合、選択した統計情報の種類を示すページが表示されます。このページは、更新間隔の値に応じて、5 〜 15 秒ごとに更新されます。

  6. ドロップダウンリストからプロセス ID を選択します。

    現在のアクティビティーはサーバーマネージャーから表示できますが、表示されるカテゴリはサーバーの調整に完全には関連していません。サーバーの調整には perfdump 統計情報をお勧めします。詳細については、次の節を参照してください。

perfdump ユーティリティーを使用した現在のアクティビティーの監視

perfdump ユーティリティーは Proxy Server に組み込まれた Server Application Function (SAF) であり、Proxy Server の内部統計情報からさまざまなパフォーマンスデータを収集し、ASCII テキストで表示します。perfdump ユーティリティーを使用することで、サーバーマネージャーから行うよりも幅広い統計情報を監視することができます。

perfdump ユーティリティーでは、統計情報が統合されます。単一のプロセスを監視するのではなく、統計情報をプロセス数で乗算するため、サーバーの全体像をより正確に把握することができます。

perfdump ユーティリティーの有効化

perfdump SAF は、 stats-xml 関数を有効にしてからのみ、有効にすることができます。

Procedureperfdump SAF を有効にするには

  1. obj.conf ファイルのデフォルトオブジェクトの後に、次のオブジェクトを追加します。

    <Object name="perf">

    Service fn="service-dump"

    </Object>

  2. デフォルトオブジェクトに次の行を追加します。

    NameTrans fn=assign-name from="/.perf" name="perf"

  3. サーバーソフトウェアを再起動します。

  4. http:// computer_name:proxyport/.perf に移動して、perfdump にアクセスします。

    perfdump 統計情報を要求し、統計情報がブラウザで自動的に更新される頻度 (秒) を指定できます。次の例では、更新が 5 秒ごとに設定されています。

    http:// computer_name:proxyport/.perf?refresh=5

perfdump の出力例

次の例に、perfdump の出力例を示します。


			 
proxyd pid: 6751

Sun Java System Web Proxy Server 4.0 B05/02/2005 15:32 (SunOS DOMESTIC)

Server started Thu May 19 13:15:14 2005
Process 6751 started Thu May 19 13:15:14 2005

ConnectionQueue:
-----------------------------------------
Current/Peak/Limit Queue Length            0/1/4096
Total Connections Queued                   1
Average Queue Length (1, 5, 15 minutes)    0.00, 0.00, 0.00
Average Queueing Delay                     0.09 milliseconds

ListenSocket ls1:
------------------------
Address                   http://0.0.0.0:8081
Acceptor Threads          1

KeepAliveInfo:
--------------------
KeepAliveCount        0/256
KeepAliveHits         0
KeepAliveFlushes      0
KeepAliveRefusals     0
KeepAliveTimeouts     0
KeepAliveTimeout      30 seconds

SessionCreationInfo:
------------------------
Active Sessions           1
Keep-Alive Sessions       0
Total Sessions Created    48/128

DiskCacheInfo:
------------------
Hit Ratio               0/0 (  0.00%)
Misses                  0
Cache files at startup  0
Cache files created     0
Cache files cleaned up  0

Native pools:
---------------------------
NativePool:
Idle/Peak/Limit               1/1/128
Work Queue Length/Peak/Limit  0/0/0

Server DNS cache disabled

Async DNS disabled

Performance Counters:
------------------------------------------------
 ..........................Average         Total      Percent

Total number of requests:                      1
Request processing time:    0.2559        0.2559

default-bucket (Default bucket)
Number of Requests:                            1    (100.00%)
Number of Invocations:                         7    (100.00%)
Latency:                    0.2483        0.2483    ( 97.04%)
Function Processing Time:   0.0076        0.0076    (  2.96%)
Total Response Time:        0.2559        0.2559    (100.00%)

Sessions:
----------------------------
Process  Status     Function
6751     response   service-dump


            

これらのパラメータの詳細については、『Sun ONE Web Server 6.1 Performance Tuning, Sizing, and Scaling Guide』の第 2 章の「Using Statistics to Tune Your Server」を参照してください。

perfdump 出力へのアクセスの制限

サーバーの perfdump 統計情報をブラウザに表示できるユーザーを制限する場合、/.perf URI 用の ACL を作成する必要があります。

ACL ファイルは、obj.conf ファイルの perf オブジェクト定義でも参照される必要があります。たとえば、/.perf URI に名前付きの ACL を作成した場合、次のようにして、オブジェクト定義の PathCheck 文の中で ACL ファイルを参照するようにする必要があります。

<Object name="perf">

PathCheck fn="check-acl" acl="perf.acl"

Service fn="service-dump"

</Object>

パフォーマンスバケットの使用

パフォーマンスバケットを使用すると、バケットを定義し、さまざまなサーバー関数にリンクすることができます。これらの関数のいずれかを呼び出すごとに、サーバーは統計データを収集し、それをバケットに追加します。たとえば、send-cgi と NSServletService は、それぞれ CGI と Java サーブレットの要求に使用される関数です。2 つのバケットを定義して CGI とサーブレットの要求に対して別々のカウンタを保持するか、または両方のタイプの動的コンテンツに対する要求をカウントするバケットを 1 つ作成することができます。この情報を収集するためにかかる負担はほとんどなく、サーバーパフォーマンスへの影響も通常はわずかです。この情報へはあとで perfdump ユーティリティーを使用してアクセスできます。

バケットには次の情報が格納されます。

default-bucket はサーバーにより事前に定義されています。default-bucket は、ユーザー定義のバケットに関連付けられていない関数の統計情報を記録します。

構成

パフォーマンスバケットのすべての設定情報を、magnus.conf ファイルと obj.conf ファイルで指定する必要があります。デフォルトのバケットのみが、自動的に有効に設定されています。

まず、「perfdump ユーティリティーを使用した現在のアクティビティーの監視」の説明に従って、パフォーマンス測定を有効にする必要があります。

次の例は、magnus.conf ファイルで新しいバケットを定義する方法を示しています。

Init fn="define-perf-bucket" name="acl-bucket" description="ACL bucket"

Init fn="define-perf-bucket" name="file-bucket" description="Non-cached responses"

Init fn="define-perf-bucket" name="cgi-bucket" description="CGI Stats"

上の例では、acl-bucket file-bucket、および cgi-bucket の 3 つのバケットが作成されます。これらのバケットを関数に関連付けるには、パフォーマンスを測定する obj.confbucket=bucket-name を追加します。

PathCheck fn="check-acl" acl="default" bucket="acl-bucket"

...

Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file" bucket="file-bucket"

...

<Object name="cgi">

ObjectType fn="force-type" type="magnus-internal/cgi"

Service fn="send-cgi" bucket="cgi-bucket"

</Object>

パフォーマンスレポート

バケットのサーバー統計情報には、perfdump ユーティリティーを使用してアクセスできます。パフォーマンスバケット情報は、perfdump によって返されるレポートの最後のセクションにあります。

レポートには次の情報が含まれています。

次の例に、perfdump を使用して入手できるパフォーマンスバケット情報の例を示します。


Performance Counters:
------------------------------------------------
                           Average         Total      Percent

Total number of requests:                      1
Request processing time:    0.2559        0.2559

default-bucket (Default bucket)
Number of Requests:                            1    (100.00%)
Number of Invocations:                         7    (100.00%)
Latency:                    0.2483        0.2483    ( 97.04%)
Function Processing Time:   0.0076        0.0076    (  2.96%)
Total Response Time:        0.2559        0.2559    (100.00%)