1. 程式人生 > >Tomcat效能監控之Probe

Tomcat效能監控之Probe

 目前採用java進行開發的系統居多,這些系統執行在java容器中,通過對容器的監控可以瞭解到java程序的執行狀況,分析java程式問題。目前市面上流行的中介軟體有很多(Tomcat、jetty、jboss、weblogic、websphere等),基本原理相似,都遵循Servlet規範。對容器的監控,實際上就是對JVM的監控,下面介紹一個Tomcat的監控工具Probe,Probe只需要一個war包就可以完成監控任務。

類別 計數器 描述
Tomcat jvm記憶體 關注GC回收頻率,Full GC次數越少越好
最大執行緒數 執行緒池連線數長期大於百分之八十以上,建議優化
資料庫連線數 活動連線數長期大於百分之八十以上,建議優化連線池

請求數

請求狀態

執行緒數、執行緒狀態、大量Blocked狀態執行緒可以Dump執行緒棧資訊進行分析

1、下載Probe:https://github.com/psi-probe;放在tomcat的webapps目錄下

2、Probe相關配置

  修改tomcat下conf/tomcat-users.xml檔案:

  <tomcat-users>
   <role rolename="manager"/>
   <role rolename="tomcat"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin" roles="manager,tomcat,manager-gui"/>
  </tomcat-users>

  開啟JVM遠端監控,新增set "JAVA_OPTS=$JAVA_OPTS -Dcom.sun.management.jmxremote",修改tomcat下bin/catalina.bat檔案:

3、RUNNABLE:系統正在執行;

  WAITING:此狀態指執行緒擁有某個鎖,呼叫了wait方法,等待其他執行緒擁有者呼叫notify喚醒改執行緒繼續下一步操作;

  TIME_WAITING:有限制的waiting,一般出現在呼叫wait、join等情況,另外執行緒sleep後,也會進入time_waiting狀態;

  BLOCKED:阻塞狀態,代表執行緒繁忙正在執行中,可能有資源等待情況,我們需要長期關注blocked狀態執行緒,Dump執行緒棧以找到程式,從而分析出做什麼操作,等待那些資源;

  TERMINATED:表示run方法已經執行完畢,進入死亡狀態,如果執行緒長時間持有可能不會被回收。