Sun Java System Web Proxy Server 4.0.4 管理指南

使用統計資料監視伺服器

您可以使用統計資料功能監視伺服器的目前作業。統計資料會顯示伺服器所處理的請求數,以及對這些請求的處理程度。如果互動式伺服器監視器報告該伺服器正在處理大量請求,則可能需要您調整伺服器配置或系統的網路核心以容納這些請求。依預設,統計資料為停用狀態,因為收集統計資料會增加 Proxy Server 的經常性耗用時間。啟用統計資料會使伺服器開始收集和儲存統計資訊。

一旦啟用統計資料之後,您將可以檢視下列方面的統計資料:

如需有關各種伺服器統計資料 (互動式伺服器監視器報告這些統計資料的總數) 的描述,請參閱\線上說明中的 [Monitor Current Activity] 頁面。

處理 Proxy Server 統計資料

系統會使用名稱為 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"

您也可以指定下列值:

您可以使用下列 URL 來擷取 stats-xml 輸出:

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

此請求會傳回一個 XML 頁面,其中包含 Proxy Server 統計資料。某些瀏覽器可讓您在瀏覽器視窗中檢視該資料;但有些瀏覽器則會要求您將資料儲存至外部檔案,再以外部檢視器檢視其內容。若無法剖析欲分析資料的不同檢視之統計,則此資訊的用途無法完全發揮。使用協力廠商工具將可以協助執行此程序。若無剖析工具,則最好透過 Server Manager 或 perfdump SAF 來觀察 stats-xml 輸出。

限制存取 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.confmagnus.conf 檔案來加以啟動。負責建立自動化工具或撰寫自訂程式以進行監視和調校的使用者,可能會偏好直接使用 stats-xml


注意 – 注意 –

啟用統計資料/設定檔時,伺服器的所有使用者都可使用統計資料資訊。


Procedure從 Server Manager 啟用統計資料

  1. 存取 Server Manager,然後按一下 [Server Status] 標籤。

  2. 按一下 [Monitor Current Activity] 連結。

    這時會顯示 [Monitor Current Activity] 頁面。

  3. 在 [Activate Statistics/Profiling] 中選取 [Yes] 選項,以啟用統計資料。

  4. 按一下 [OK]。

  5. 按一下 [Restart Required]。

    即會顯示 [Apply Changes] 頁面。

  6. 按一下 [Restart Proxy Server] 按鈕以套用變更。

Procedure使用 stats-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 中。

使用統計資料

一旦啟用統計資料,您就可以取得有關您的伺服器實例運作狀況的各項資訊。統計資料被分為多個功能區域。

在 Server Manager 中顯示統計資料

本小節說明如何在 Server Manager 中檢視 proxystats.xml 資料的子集。

您可以檢視 Proxy Server 連線、DNS 處理、持續作用值、快取及伺服器請求等相關資訊之總數、最大值、尖峰值及長條圖。

以下小節說明可以在這些區域取得的資訊類型。

連線統計資料

下列連線統計資料可從 Server Manager 取得:

DNS 統計資料

下列 DNS 統計資料可從 Server Manager 取得:

持續作用統計資料

下列持續作用統計資料可從 Server Manager 取得:

伺服器請求統計資料

下列伺服器統計資料可從 Server Manager 取得。

Procedure存取統計資料

  1. 存取 Server Manager,然後按一下 [Server Status] 標籤。

  2. 按一下 [Monitor Current Activity] 連結。

  3. 從 [Select Refresh Interval] 下拉式清單中選擇重新整理間隔。

    重新整理間隔是指所顯示統計資訊的更新間隔秒數。

  4. 從 [Select Statistics To Be Displayed] 下拉式清單中選擇要顯示的統計資料類型。

    如需有關統計資料類型的更多資訊,請參閱在 Server Manager 中顯示統計資料

  5. 按一下 [Submit]。

    如果伺服器實例正在執行中,並且已經啟用統計/效能評測,您就會看到顯示所選取統計資料類型的頁面。此頁面每隔 5 到 15 秒更新一次,視重新整理間隔值而定。

  6. 從下拉式清單中選取程序 ID。

    您可以透過 Server Manager 檢視目前作業,但這些種類與調校伺服器的關係不大。建議您使用 perfdump 統計資料來調校伺服器。如需更多資訊,請參閱下一節。

使用 perfdump 公用程式監視目前作業

perfdump 公用程式是內建在 Proxy Server 中的一種伺服器應用程式函數 (SAF),可以從 Proxy Server 內部統計資料收集各種效能資料,並將其以 ASCII 文字格式顯示出來。與使用 Server Manager 相比,使用 perfdump 公用程式可監視的統計資料類型更多。

利用 perfdump 可將統計資料統一。此公用程式並不只是監視單一程序,而是將統計資料與程序數相乘,這樣可從整體上更精確地瞭解伺服器狀況。

啟用 perfdump 公用程式

必須先啟用 stats-xml 函數,之後才能啟用 perfdump SAF。

Procedure啟用 perfdump 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。

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 公用程式來存取這項資訊。

下列資訊儲存在儲存區中:

default-bucket 是由伺服器預先定義。其中記錄未與任何使用者定義的儲存區產生關聯的函數統計資料。

配置

您必須在 magnus.confobj.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-bucketfile-bucketcgi-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 所傳回報告的最後一部分。

該報告中包含下列資訊:

以下為可透過 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%)