• 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方法已经执行完毕,进入死亡状态,如果线程长时间持有可能不会被回收。

  • 相关阅读:
    js-artDialog文档说明
    T-SQL数据库函数
    强大的Jquery对象选择器
    学习正则表达式
    经典正则
    其他常用的正则表达式
    celery的使用
    django中间件
    AJAX
    Django Form表单组件
  • 原文地址:https://www.cnblogs.com/wu-wu/p/10061718.html
Copyright © 2020-2023  润新知