Sun Java System Web Server 7.0 パフォーマンスのチューニング、サイジング、およびスケーリング

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

perfdump ユーティリティーは Web Server に組み込まれた Server Application Function (SAF) であり、Web Server の内部統計情報からさまざまなパフォーマンスデータを収集し、ASCII テキストで表示します。perfdump 出力には、コマンド行の統計情報または管理コンソールで表示可能なすべての統計情報は表示されませんが、依然として便利なツールです。たとえば、管理サーバーが実行されていない場合でも、引き続き perfdump を使用できます。CLI 経由の perfdump 出力の表示 (これはデフォルトで有効になっている)、または URI 経由の perfdump 出力の表示 (これは有効にする必要がある) のどちらかが可能です。URI を有効にする場合は、perfdump URI へのアクセスを制御してください。そうしないと、ユーザーがその URI を表示できるようになります。

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

perfdump ユーティリティーで表示される情報のチューニングについては、「監視データに基づくサーバーのチューニング」を参照してください。

Procedure管理コンソールから perfdump URI を有効にする

管理コンソール経由で、仮想サーバーの perfdump URI を有効にすることができます。


注 –

perfdump で表示される統計情報は、そのサーバー全体の情報です。ある仮想サーバーで perfdump を有効にすると、個別の仮想サーバーではなく、サーバー全体の統計情報が表示されます。


  1. 「共通操作」で、構成を選択します。

  2. 仮想サーバーを選択し、「仮想サーバーを編集」をクリックします。

  3. 「監視設定」タブをクリックします。

  4. 「プレーンテキストレポート」の「有効」チェックボックスを選択します。

  5. レポートにアクセスするための URI を指定します。たとえば、/.perf とします。

  6. 「保存 」をクリックします。

  7. 構成を配備します。

  8. perfdump にアクセスするには、仮想サーバー上の URI にアクセスします。

    次に例を示します。http://localhost:80/.perf

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

    http:// yourhost/.perf?refresh=5

ProcedureCLI から perfdump URI を有効にする

  1. 次のコマンドを使用して stats-xml を有効にします。

    ./wadm enable-perfdump --user=admin-user --password-file= admin-password-file [--uri=uri]--config= config-name--vs=virtual-server-name

    URI オプションを使用して pefdump URI を設定します。

  2. wadm deploy-config コマンドを使用して構成を配備します。

  3. perfdump にアクセスするには、仮想サーバー上の URI にアクセスします。

    次に例を示します。http://localhost:80/.perf

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

    http:// yourhost/.perf?refresh=5

ProcedureCLI から perfdump データを表示する

URI に加えて、コマンド行インタフェース経由でも perfdump 出力にアクセスできます。これはデフォルトで有効になっています。URI 経由の perfdump 出力の表示とは異なり、コマンド行で perfdump 出力を表示するには、管理サーバーが実行されている必要があります。ただし、要求を処理するスレッドがサーバー内で (たとえば、ビジー状態のために) ハングアップしており、URI を使用できない場合でも、引き続き CLI 経由で perfdump 出力にアクセスできます。

  1. コマンド行インタフェース経由で perfdump 出力を表示するには、次のコマンドを入力します。

    ./wadm get-perfdump --user=admin-user --password-file= admin-password-file --config=config-name --node= node-name

    この出力は、コマンドウィンドウに表示されます。

サンプルの perfdump 出力

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

webservd pid: 29133

Sun Java System Web Server 7.0 B07/13/2006 17:09 (SunOS DOMESTIC)

Server started Fri Jul 14 14:34:15 2006
Process 29133 started Fri Jul 14 14:34:17 2006

ConnectionQueue:
-----------------------------------------
Current/Peak/Limit Queue Length            2/237/1352
Total Connections Queued                   67364017
Average Queue Length (1, 5, 15 minutes)    4.52, 4.73, 4.85
Average Queueing Delay                     13.63 milliseconds

ListenSocket ls1:
------------------------
Address                   https://0.0.0.0:2014
Acceptor Threads          1
Default Virtual Server    https-test

KeepAliveInfo:
--------------------
KeepAliveCount        198/200
KeepAliveHits         0
KeepAliveFlushes      0
KeepAliveRefusals     56844280
KeepAliveTimeouts     365589
KeepAliveTimeout      10 seconds

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

Server cache disabled

Native pools:
----------------------------
NativePool:
Idle/Peak/Limit               1/1/128
Work Queue Length/Peak/Limit  0/0/0
TestPool:
Idle/Peak/Limit               5/5/10
Work Queue Length/Peak/Limit  0/0/15

DNSCacheInfo:
------------------
enabled             yes
CacheEntries        4/1024
HitRatio            62854802/62862912 ( 99.99%)

Async DNS disabled

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

Total number of requests:               62647125
Request processing time:    0.0343  2147687.2500

default-bucket (Default bucket)
Number of Requests:                     62647125    (100.00%)
Number of Invocations:                3374170785    (100.00%)
Latency:                    0.0008    47998.2500    (  2.23%)
Function Processing Time:   0.0335  2099689.0000    ( 97.77%)
Total Response Time:        0.0343  2147687.2500    (100.00%)

Sessions:
-----------------------------------------------------------------------------------------------------------
Process  Status    Client     Age  VS          Method URI                                      Function

29133    response  192.6.7.7  115  https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  8    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  4    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  10.5.8.19  4    https-test  GET   /perf                                     service-dump
29133    response  192.6.7.7  3    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  3    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  2    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  2    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  2    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    response  192.6.7.7  2    https-test  GET   /qa_webapp/CheckNetwork.class             service-j2ee
29133    request   192.6.7.7  0                                                                  
29133    request   192.6.7.7  0                                                                  
29133    request   192.6.7.7  0                                                                  
29133    request   192.6.7.7  0                                                                  
29133    request   192.6.7.7  0                                                                  
29133    response  192.6.7.7  0    https-test  GET   /file1.shtml                              shtml_send
29133    request   192.6.7.7  0                                                                     
29133    request   192.6.7.7  0                                                                     
29133    response  192.6.7.7  0    https-test  GET   /find-pathinfo-forward/pathinfo.pl/p/info send-cgi
29133    request   192.6.7.7  0                                                                     
29133    updating  192.6.7.7                                                                        
29133    updating  192.6.7.7                                                                         
29133    updating  192.6.7.7                                                                         
29133    updating  192.6.7.7                                                                         
.
.
.

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

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

構成

パフォーマンスバケットのすべての設定情報を、magnus.conf および obj.conf ファイルに指定してください。自動的に有効になるのは、default-bucket だけです。

最初に、パフォーマンス統計の収集と 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"

前述の例では、次の 3 つのバケットを作成しています。acl-bucketfile-bucket、および cgi-bucket。これらのバケットを関数に関連付けるには、パフォーマンスを測定する obj.conf 関数に bucket=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>

詳細については、『Sun Java System Web Server 7.0 Administrator’s Configuration File Reference』「The bucket Parameter」を参照してください。

パフォーマンスレポート

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

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

perfdump で表示可能なパフォーマンスバケット情報の例を次に示します。

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

Total number of requests:               62647125
Request processing time:    0.0343  2147687.2500

default-bucket (Default bucket)
Number of Requests:                     62647125    (100.00%)
Number of Invocations:                3374170785    (100.00%)
Latency:                    0.0008    47998.2500    (  2.23%)
Function Processing Time:   0.0335  2099689.0000    ( 97.77%)
Total Response Time:        0.0343  2147687.2500    (100.00%)