為何使用要求度量?
要求度量是一個工具,可讓您追蹤個別交易,記錄每一項主要 WebSphere® Application Server 元件中的處理時間。
開始之前
HTTP request/trade/scenario ------------------------------> 172 ms
Servlet/trade/scenario -----------------------------> 130 ms
EJB TradeEJB.getAccountData ---------------------> 38 ms
JDBC select --------------------------------> 7 ms

這個交易流程及相關聯的回應時間可以協助您鎖定效能問題區域,進行資源限制問題的除錯。 例如,流程有助於判斷交易是將大部分時間用在 Web 伺服器外掛程式、Web 儲存器、Enterprise JavaBeans (EJB) 儲存器或後端資料庫中。 各層次所收集的回應時間包括:在該層次花費的時間,以及在較低層次花費的時間。 例如,Servlet 的回應時間 130 毫秒也包括 Enterprise Bean 和「Java™ 資料庫連線」的 38 毫秒。 因此,92 毫秒可歸因於 Servlet 程序。
要求度量會追蹤特定交易的回應時間。 由於要求度量會追蹤個別交易,所以使用它對系統效能會有連帶作用。 不過,利用要求過濾功能可以緩解這個功能。
比方說,工具可能會注入虛構交易。 之後,要求度量可以追蹤這些交易在 WebSphere Application Server 環境內的回應時間。 虛構交易是管理者以主動方式測試系統效能而注入系統的交易。 這個資訊可協助管理者調整網站的效能及執行更正動作。 因此,要求度量提供的資訊可用來作為警示機制,以便偵測特定要求類型的效能何時會超出可接受的臨界值。 要求度量中的過濾機制可用來聚焦於特定的虛構交易,在這個實務中,有助於效能的最佳化。
關於這項作業
在隔離了問題區域之後,請利用要求度量過濾機制來特別聚焦於那些區域。 例如,當在特定 Servlet 或 EJB 方法中隔離出問題時,請利用統一資源識別碼 (URI) 演算法或 EJB 過濾器,只啟用對 Servlet 或 EJB 方法的檢測。 這個過濾機制支援焦點更集中的效能分析。
- 來源 IP 過濾器
- URI 過濾器
- EJB 方法名稱過濾器
- JMS 參數過濾器
- Web 服務參數過濾器
當啟用過濾時,只有符合過濾器的要求會產生要求度量資料、建立日誌記錄、呼叫 ARM 介面,或所有動作。 您可以將工作注入正在執行的系統中(具體而言,就是要產生追蹤資訊),以便評估在正常負載的環境定義中特定要求類型的效能,而忽略系統所可能面臨的其他來源的要求。
程序
- 檢閱本節中的詳細說明,進一步瞭解要求度量。
- 配置和啟用要求度量。
- 擷取效能資料和監視應用程式流程。
- 延伸監視,以便追蹤可能需要其他檢測點的應用程式。
範例
檢視下列範例來瞭解如何使用要求度量。
在這個範例中,HitCount Servlet 和 Increment Enterprise Bean 部署在兩個不同的應用程式伺服器程序上。 如下圖所示,Web 儲存器層級和 Enterprise JavaBeans (EJB) 儲存器層級是在兩個不同的應用程式伺服器中執行。 如果要設定這類配置,請安裝 WebSphere Application Server, Network Deployment。

假設 Web 伺服器和 Web 儲存器層級都是在 192.168.0.1 機器上執行,而 Enterprise JavaBeans (EJB) 儲存器層級是在第二部機器 192.168.0.2 上執行。 用戶端要求有可能從另一部機器傳送;例如 192.168.0.3 或其他機器。
為了說明來源 IP 過濾的用法,定義及啟用了一個來源 IP 過濾器 (192.168.0.3)。 您可以透過 http://192.168.0.1/hitcount?selection=EJB&lookup=GBL&trans=CMT 來追蹤從 192.168.0.3 機器產生的要求。 不過,由於來源 IP 位址不在過濾器清單中,所以不會追蹤從任何其他機器產生的要求。
通過只建立來源 IP 過濾器,可以有效追蹤來自這個來源 IP 位址的任何要求。 這個工具可以有效尋找系統低限負載的效能問題。 如果從其他 IP 位址產生正常負載,就不會追蹤它的要求。 通過利用已定義的來源 IP 位址來產生要求,您可以比較有負載系統與無負載執行時的追蹤記錄,以便瞭解各個中繼站的效能瓶頸。 這個能力有助於將調整工作集中於複雜部署環境中的正確節點和程序上。
請確定已利用管理主控台來啟用要求度量。 另外,也請確定追蹤層次至少設為中繼站(在程序範圍內寫入要求追蹤)。 請利用先前列出的配置,透過 192.168.0.3 機器中的 HitCount Servlet 來傳送 http://192.168.0.1/hitcount?selection=EJB&lookup=GBL&trans=CMT 要求。
- Web 伺服器外掛程式的追蹤記錄會顯示在 192.168.0.1 機器上的外掛程式日誌檔中(預設位置是 plugins_root/logs/web_server_name/http_plugin.log)。
Servlet 的追蹤記錄會顯示在 192.168.0.1 機器上的應用程式伺服器日誌檔中(預設位置是 profile_root/logs/appserver/SystemOut.log)。
Servlet 的追蹤記錄會顯示在 192.168.0.1 機器上的應用程式伺服器日誌檔中(預設位置是 profile_root/logs/appserver/SystemOut.log)。
增量 Bean 的追蹤記錄會顯示在 192.168.0.2 機器上的應用程式伺服器日誌檔中(預設位置是 profile_root/logs/appserver/SystemOut.log)。
增量 Bean 的追蹤記錄會顯示在 192.168.0.2 機器上的應用程式伺服器日誌檔中(預設位置是 profile_root/logs/appserver/SystemOut.log)。
PLUGIN:
parent:ver=1,ip=192.168.0.1,time=1016556185102,pid=796,reqid=40,event=0
- current:ver=1,ip=192.168.0.1,time=1016556185102,pid=796,reqid=40,event=1
type=HTTP detail=/hitcount elapsed=90 bytesIn=0 bytesOut=2252
Application server (web container tier)
PMRM0003I: parent:ver=1,ip=192.168.0.1,time=1016556185102,pid=796,reqid=40,event=0
- current:ver=1,ip=192.168.0.1,time=1016556186102,pid=884,reqid=40,event=1
type=URI detail=/hitcount elapsed=60
PMRM0003I:
parent:ver=1,ip=192.168.0.1,time=1016556186102,pid=884,reqid=40,event=1
-
current:ver=1,ip=192.168.0.2,time=1016556190505,pid=9321,reqid=40,event=1
type=EJB
detail=com.ibm.defaultapplication.Increment.increment elapsed=40