您可利用效能儲存區來定義儲存區,並將之連結至多種伺服器函數。每當呼叫其中一種函數時,伺服器就會收集統計資料,並將資料增加至儲存區中。例如,send-cgi 和NSServletService 是分別用來服務 CGI 和 Java servlet 請求的函數。您可以定義兩個儲存區來維護 CGI 和 servlet 請求的個別計數,或建立一個儲存區以計算這兩種動態內容的請求數目。收集這項資訊的成本很低,且對於伺服器效能的影響通常微乎其微。稍後您可以利用 perfdump 公用程式來存取這項資訊。
下列資訊儲存在儲存區中:
Name of the bucket-此名稱用於將儲存區與函數相關聯
Description-與儲存區相關聯的函數說明
Number of requests for this function-造成呼叫此函數的請求總數
Number of times the function was invoked-由於一個請求可能會使某些函數執行多次,因此這個數字可能與請求該函數的請求數目不相等
Function latency or the dispatch time-伺服器呼叫該函數所耗費的時間
Function time-函數本身所耗費的時間
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。若要將這些儲存區與函數建立關聯,請將 bucket=bucket-name 增加至您要進行效能測量的 obj.conf 函數中。
範例
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] 是函數被呼叫的總次數。此值與請求數不同,因為處理一個請求時可能會多次呼叫某函數。此列的百分比欄是參照所有儲存區的呼叫總數計算得出。
[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%) |