パフォーマンスバケットを使用すると、バケットを定義し、さまざまなサーバー関数にリンクすることができます。これらの関数のいずれかを呼び出すごとに、サーバーは統計データを収集し、それをバケットに追加します。たとえば、send-cgi と NSServletService は、それぞれ CGI と Java サーブレットの要求に使用される関数です。2 つのバケットを定義して CGI とサーブレットの要求に対して別々のカウンタを保持するか、または両方のタイプの動的コンテンツに対する要求をカウントするバケットを 1 つ作成することができます。この情報を収集するためにかかる負担はほとんどなく、サーバーパフォーマンスへの影響も通常はわずかです。この情報へはあとで perfdump ユーティリティーを使用してアクセスできます。
バケットには次の情報が格納されます。
バケットの名前: この名前はバケットを関数に関連付ける場合に使用します。
説明: バケットが関連付けられている関数の説明。
この関数の要求数: この関数を呼び出した要求の合計数。
関数が呼び出された回数: この数字は関数の要求数と一致しない場合があります。関数の中には 1 つの要求に対して複数回実行されることがあるためです。
関数の遅延またはディスパッチ時間: サーバーが関数の呼び出しに要した時間。
関数時間: 関数自体に費やされた時間。
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.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>
バケットのサーバー統計情報には、perfdump ユーティリティーを使用してアクセスできます。パフォーマンスバケット情報は、perfdump によって返されるレポートの最後のセクションにあります。
レポートには次の情報が含まれています。
平均 (Average)、合計 (Total)、パーセント (Percent) の各列には、要求された各統計情報のデータが表示されます。
要求処理時間 (Request Processing Time) はサーバーがそれまでに受信したすべての要求を処理するために要した合計時間です。
要求数 (Number of Requests) は関数の要求の合計数です。
呼び出し数 (Number of Invocations) は、関数が呼び出された合計回数です。1 つの要求の処理中に、関数が何度も呼び出される場合があるため、この値は要求の数とは異なります。この行のパーセント列は、すべてのバケットの呼び出し回数の合計に基づいて計算されます。
遅延 (Latency) は Proxy Server が関数の呼び出しに要した時間 (秒) です。
関数処理時間 (Function Processing Time) は Proxy Server が関数の処理に費やした時間 (秒) です。Function Processing Timeと Total Response Time のパーセンテージは、Request Processing Time の合計に基づいて計算されます。
合計応答時間 (Total Response Time) は Function Processing Time と Latency の合計 (秒) です。
次の例に、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%) |