我的Web應用程序體系結構是:Apache 2(作爲負載平衡器)+ JBoss 3.2.3 + MySQL 5.0.19。使用Mod_JK測量JBoss服務器的請求處理時間
我想:測量請求處理時間(每個單獨的請求)花費的JBoss服務器上只(即花費在網絡和數據庫服務器不計時間
我一直在研究如何登錄。 。在應用層請求處理時間只有我發現* MOD_JK日誌*,* Apache的mod_log_config *和Tomcat AccessLogValve作爲兩種可能的方法
使用* MOD_JK記錄*:我明白了mod_jk日誌記錄提供請求處理時間爲每要求計算出一個請求離開Apache服務器的時間與相應的時間之間的時間差由Apache服務器收到的積水響應。請糾正我,如果這不正確/正確。
使用Apache的mod_log_config模型(http://www.lifeenv.gov.sk/tomcat-docs/jk/config/apache.html):在LogFormat(JKLogFile構造)構造中添加「%{JK_REQUEST_DURATION} n」(參見上面的鏈接)。 「JK_REQUEST_DURATION」從Apache的角度捕獲整個Tomcat處理時間。
時間(在上述情況下)包括Tomcat/JBoss + MySQL的處理時間。因爲它包含MySQL處理時間,所以對我而言無濟於事 - 我只想在JBoss上記錄請求處理時間。任何建議/想法讚賞?
使用AccessLogValve:通過在AccessLogValve XML構造的模式屬性中設置%D,它可以記錄「處理請求的時間,以毫秒爲單位」。這是不是很清楚,如果這
- 時間,如果這個時間是服務於 請求被Tomcat/JBoss的所需要的時間(例如,分配線程工人來處理它)採取
- 時間來處理請求和它發送到數據庫服務器 (總時間的Tomcat/JBoss服務器上)
- 處理被Tomcat/JBoss的請求和發送響應 回Web服務器/客戶端
任何想法/拍攝時間線索?
這是我的經驗/研究我想分享。如果任何人有類似的問題/知道一種方式來分享他們的經驗/指針/想法,可以找到更好的解決方案,將不勝感激。
期待您的想法/建議
感謝Cherouvim你的有趣點 –
感謝Cherouvim你的有趣點。排除數據庫時間將有助於確定瓶頸在哪裏;在應用程序服務器或數據庫服務器上。大多數情況下,數據庫的時間不會被排除,但這是我正在運行的應用程序的一個特例。您所描述的方式是我想到的,但我期望會有相當大的性能開銷。我甚至正在尋找現有的工具/服務器配置,這種測量自然而然地進行。我不想更改應用程序或服務器代碼..所以應該有一個插件左右 –