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方法已經執行完畢,進入死亡狀態,如果線程長時間持有可能不會被回收。

 


免責聲明!

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



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