您可以使用統計資料功能監視伺服器的目前作業。統計資料會顯示伺服器所處理的請求數,以及對這些請求的處理程度。如果互動式伺服器監視器報告該伺服器正在處理大量請求,則可能需要您調整伺服器配置或系統的網路核心以容納這些請求。依預設,統計資料為停用狀態,因為收集統計資料會增加 Proxy Server 的經常性耗用時間。啟用統計資料會使伺服器開始收集和儲存統計資訊。
連線
DNS
KeepAlive
快取
伺服器請求
如需有關各種伺服器統計資料 (互動式伺服器監視器報告這些統計資料的總數) 的描述,請參閱\線上說明中的 [Monitor Current Activity] 頁面。
系統會使用名稱為 stats-xml 的內建函數來收集 Proxy Server 統計資料。必須啟用此函數,才能從 Server Manager 檢視統計資料,或使用 perfdump 函數來產生報告。stats-xml 函 數亦用於啟用效能評測,它是透過使用自訂 NSAPI 函數監視統計資料所必需的。若在伺服器上啟用統計資料與效能評測,將會初始化 obj.conf 檔案中名為 stats-init 的 伺服器函數,使其開始收集統計資料。
Init profiling="on" fn="stats-init"
此指示也會建立一個 NameTrans 指令,讓您用來從瀏覽器視窗存取統計資料。
NameTrans fn="assign-name" name="stats-xml" from="(/stats-xml|/stats-xml/.*)
最後,當啟用統計資料時,會增加一個 Service 指令,以在選取 NameTrans 指令時用來處理 stats-xml 函數。
<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"
您也可以指定下列值:
update-interval。更新統計資料的間隔秒數。設定值較高時 (較不頻繁) 可以獲得較佳效能。最小值為 1;預設值為 5。
profiling。是否要啟動 NSAPI 效能設定檔。預設值為 no,這樣可稍微提升伺服器的效能。但是,若您是透過使用者介面啟動統計資料,則依預設會啟用設定檔。
您可以使用下列 URL 來擷取 stats-xml 輸出:
http://computer_name:proxyport /stats-xml/proxystats.xml
此請求會傳回一個 XML 頁面,其中包含 Proxy Server 統計資料。某些瀏覽器可讓您在瀏覽器視窗中檢視該資料;但有些瀏覽器則會要求您將資料儲存至外部檔案,再以外部檢視器檢視其內容。若無法剖析欲分析資料的不同檢視之統計,則此資訊的用途無法完全發揮。使用協力廠商工具將可以協助執行此程序。若無剖析工具,則最好透過 Server Manager 或 perfdump SAF 來觀察 stats-xml 輸出。
若您想限制可從瀏覽器檢視伺服器 stats-xml 統計的使用者,則應為 /stats-xml URI 建立 ACL。
obj.conf 檔案中的 stats-xml 物件定義也必須參照此 ACL 檔案。例如,如果您已為 /stats-xml URI 建立了一個已命名的 ACL,就必須在物件定義中的 PathCheck 敘述內參照該 ACL 檔案,如下所示:
<Object name="stats-xml">
PathCheck fn="check-acl" acl="stats.acl"
Service fn="stats-xml"
</Object>
您必須先在 Proxy Server 上啟動統計資料,之後才能監視效能。您可以透過 Server Manager 來啟動統計資料,也可以編輯 obj.conf 和 magnus.conf 檔案來加以啟動。負責建立自動化工具或撰寫自訂程式以進行監視和調校的使用者,可能會偏好直接使用 stats-xml。
啟用統計資料/設定檔時,伺服器的所有使用者都可使用統計資料資訊。
存取 Server Manager,然後按一下 [Server Status] 標籤。
按一下 [Monitor Current Activity] 連結。
這時會顯示 [Monitor Current Activity] 頁面。
在 [Activate Statistics/Profiling] 中選取 [Yes] 選項,以啟用統計資料。
按一下 [OK]。
按一下 [Restart Required]。
此時會顯示 [Apply Changes] 頁面。
按一下 [Restart Proxy Server] 按鈕以套用變更。
在 obj.conf 檔案的預設物件下,增加下列行:
NameTrans fn="assign-name" name="stats-xml" from=" (/stats-xml|/stats-xml/.*)" |
將下列 Service 函數增加至 obj.conf 中:
<Object name="stats-xml">
Service fn="stats-xml"
</Object>
將 stats-init SAF 增加至 obj.conf 中。
一旦啟用統計資料,您就可以取得有關您的伺服器實例運作狀況的各項資訊。統計資料被分為多個功能區域。
本小節說明如何在 Server Manager 中檢視 proxystats.xml 資料的子集。
您可以檢視 Proxy Server 連線、DNS 處理、持續作用值、快取及伺服器請求等相關資訊之總數、最大值、尖峰值及長條圖。
以下小節說明可以在這些區域取得的資訊類型。
下列連線統計資料可從 Server Manager 取得:
連線總數
最大佇列中連線數
佇列中連線之尖峰數
目前佇列中連線數
程序數目
下列 DNS 統計資料可從 Server Manager 取得:
最大 DNS 快取項目數
程序數目
DNS 快取符合項目數 (亦顯示為長條圖)
DNS 快取不符合項目數 (亦顯示為長條圖)
下列持續作用統計資料可從 Server Manager 取得:
最大持續作用連線數
持續作用逾時
程序數目
持續作用符合項目數 (亦顯示為長條圖)
持續作用更新次數 (亦顯示為長條圖)
持續作用拒絕次數 (亦顯示為長條圖)
持續作用逾時次數 (亦顯示為長條圖)
下列伺服器統計資料可從 Server Manager 取得。
請求總數。
收到的位元組數。
傳送的位元組數。
程序數目。
每一 HTTP 伺服器代碼的請求細項 (亦顯示為長條圖)。例如,HTTP 伺服器代碼 200 表示已執行的請求。
存取 Server Manager,然後按一下 [Server Status] 標籤。
按一下 [Monitor Current Activity] 連結。
從 [Select Refresh Interval] 下拉式清單中選擇重新整理間隔。
重新整理間隔是指所顯示統計資訊的更新間隔秒數。
從 [Select Statistics To Be Displayed] 下拉式清單中選擇要顯示的統計資料類型。
如需有關統計資料類型的更多資訊,請參閱在 Server Manager 中顯示統計資料。
按一下 [Submit]。
如果伺服器實例正在執行中,並且已經啟用統計/效能評測,您就會看到顯示所選取統計資料類型的頁面。此頁面每隔 5 到 15 秒更新一次,視重新整理間隔值而定。
從下拉式清單中選取程序 ID。
您可以透過 Server Manager 檢視目前作業,但這些種類與調校伺服器的關係不大。建議您使用 perfdump 統計資料來調校伺服器。如需更多資訊,請參閱下一節。
perfdump 公用程式是內建在 Proxy Server 中的一種伺服器應用程式函數 (SAF),可以從 Proxy Server 內部統計資料收集各種效能資料,並將其以 ASCII 文字格式顯示出來。與使用 Server Manager 相比,使用 perfdump 公用程式可監視的統計資料類型更多。
利用 perfdump 可將統計資料統一。此公用程式並不只是監視單一程序,而是將統計資料與程序數相乘,這樣可從整體上更精確地瞭解伺服器狀況。
必須先啟用 stats-xml 函數,之後才能啟用 perfdump SAF。
在 obj.conf 檔案內的預設物件之後增加以下物件:
<Object name="perf">
Service fn="service-dump"
</Object>
在預設物件中增加以下一行:
NameTrans fn=assign-name from="/.perf" name="perf"
重新啟動伺服器軟體。
轉至 http:// computer_name:proxyport/.perf 以存取 perfdump。
您可請求 perfdump 統計資料,並指定瀏覽器自動重新整理的頻率 (以秒為單位)。下列範例設定每隔 5 秒重新整理一次:
http:// computer_name:proxyport/.perf?refresh=5
以下顯示 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 統計的使用者,則需為 /.perf URI 建立 ACL。
obj.conf 檔案中的 perf 物件定義也必須參照此 ACL 檔案。例如,如果您已為 >/.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 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%) |