如何對應用服務性能問題診斷(Tomcat、Weblogic中間件)


在我們web項目中,我們常見的web應用服務器有Tomcat、Weblogic、WebSphere。它們是互聯網應用系統的基礎架構軟件,也叫“中間件”,負責處理動態在頁面請求,並為應用提供了名字、事務、安全、消息、數據訪問等,此外,它們還是提供應該構建的開發、部署、運行及管理功能。

當我們對項目做性能測試時,我們如何更好地監控它們,並診斷出性能問題呢?下以是我對Tomcat和Weblogic的一些性能監控分析方法:

1、  Tomcat性能監控分析

Tomcat是一個免費的開放源代碼的web應用服務器軟件,主要用來支持運行Java Servlet/JSP。Tomcat運行時占用的系統資源小,擴展性好,支持負載平衡和郵件服務等開發應用系統常用的功能,而且它還不斷的改進和完善中,使用Tomcat作為web應用服務器,在系統應用性能上有很大幫助,以下介紹幾種監控Tomcat性能的方法:

1)  Tomcat自帶的監控功能

使用過Tomcat的人大概都知道,它附帶了一個監控頁面,先修改配置文件/conf目錄下的tomcat-users.xml文件,為監控的用戶添加權限,並且需要添加一個名為“manager-gui”的角色,如下:

1 <role rolename="manager-gui"/>
2 
3 <user username="monitor" password="123456" roles="manager-gui"/>
4  

 

保存后,訪問http://localhost:8088/manager/status,如圖,可查看Tomcat性能情況

 2)  用LambdaProbe監控Tomcat

網上下載probe壓縮文件,http://www.lambdaprobe.org/ 解壓后,可以看到有個probe.war文件,接着需要修改兩個文件

a、修改tomcat下conf/ tomcat-users.xml文件,添加如下代碼:

1 <role rolename="manager"/> 
2 <role rolename="poweruser"/> 
3 <role rolename="poweruserplus"/> 
4 <role rolename="probeuser"/> 
5 <user username="probe" password="123456" roles="manager,probeuser,poweruser,poweruserplus"/>
6  

 b、修改tomcat下bin/Catalina.bat文件,添加如下代碼:

set CATALINA_OPTS=-Xms512m -Xmx1024m -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=29001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
 

 啟動tomcat后,訪問http://localhost:8088, 輸入用戶名:probe,密碼123456,登錄后,

在頁面中“WAR file to deploy”點擊“瀏覽”將probe.war文件發布到tomcat應用中

 訪問http://localhost:8088/probe/,查看tomcat實時運行的應用程序的性能,如圖

 3)  LoadRunner編寫腳本實現Tomcat性能監控

LR不支持直接監控Tomcat,但是可以在VUGen中編寫腳本來獲取性能數據,其實是編寫大量的關聯函數web_reg_sava_param()及lr_user_data_point函數,例如:

 1 double atof(const char *string);
 2 
 3 extern char * strtok(char * token, const char * delimiter);
 4 
 5 collectMetrics(){
 6 
 7 int countP, counts,  countF, countF, countR, countK;
 8 
 9 int numValues;
10 
11 static int loggedVersionInfo = FALSE;
12 
13 lr_save_string(“127.0.0.1”,”ServerName”);
14 
15 web_set max_html_param_len(65565);
16 
17 web_set_user(“admin”,”admin”,”{ServerName}”);
18 
19 lr_start_transaction(“monitor tomcat”);
20 
21 web_reg_save_param(“JVMFreeMemory”,”LR=Free memory”,”RB=MB”,”Ord=1”,LAST);
22 
23 略……………這里添加多個監控指標
24 
25 Lr_end_transaction(“monitor tomcat”,LR_AUTO);
26 
27  
28 
29 寫入Tomcat JVM度量數據
30 
31 Lr_user_data_point(“Tomcat JVM Free memory”,atof(lr_eval_string(“{JVMFreeMemory}”)));
32 
33 }
34  

然后在Run-time中設置數據收集的間隔“pacing”,最好設置在5-10s,最后在Controller中設置腳本運行,場景運行完畢后,在Analysis分析結果圖標中添加“User Defined Data Points”,查看收集到的Tomcat性能數據。

4)  JMX監控Tomcat

使用JMX監控Tomcat,需要編寫JMX提供接口的實現類,該接口是任何java程序都可以調用訪問的,編寫java程序來收集Tomcat性能數據,在此就略過啦!

5)  優化JVM提高Tomcat性能

a、  修改Tomcat啟動/最大時的運行內存來監控性能指標的影響,即修改bin/Catalina.bat文件;

JAVA_OPTS=-Xms512m -Xmx1024m

b、  修改conf目錄下server.xml文件maxThreads的值來調整Tomcat的最大連接線程數;

c、  同上,修改connectionTimeout的值來調整連接超時數;

d、  同上,修改acceptCount的值來調整最大排隊數;

 2、  Weblogic中間件監控性能分析

a、  在weblogic控制台頁面調整Session策略;

b、  JDBC連接數監控及參數的調整,如Initial Capacity、Maximum Capcity等;

c、  JVM監控分析,可設置JVM啟動時的參數;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM