• 使用jvisualvm.exe工具远程监视tomcat的线程运行状态


    一、简述

         在web项目中,常使用tomcat作为web容器。代码编写的时候,由于业务需要,也常会使用线程机制。在系统运行一段时间之后,若出现响应慢或线程之间出现死锁的情况,要查出问题所在,需要使用jdk 提供的 jvuisualvm 工具,通过该工具监视tomcat的线程运行情况,从而解决问题。

        tomcat分为linux和windows版的,不同的版本若想使用jvuisualvm进行线程监视,需要进行不同的配置。

    二、linux版本的tomcat配置

        为了让本机器上的jvuisualvm 工具能够监视远程机器上(linux)的tomcat中线程运行状况,tomcat需要修改其对应配置。修改如下:

    (1) 修改catalina.sh文件

       打开该文件,在绿色注释上加入以下配置。

    CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.2.145.108"
    # ----- Execute The Requested Command -----------------------------------------

    其中红色所指IP是tomcat所属服务器的IP。蓝色所指端口为jmx连接时的端口。

    (2) linux防火墙配置

    在(1) 中指定了jmx连接的端口,此时需要查看linux是否开启,若开启,可以将防火墙关闭,或者将端口设置到防火墙中允许通过。

    三、windows版本的tomcat配置

        windows版本的tomcat,需要查看其启动方式,若是注册成了服务,可以通过以下方式进行配置:

    (1) 更改注册表:

      

    在注册表中找到图中位置。

        双击 Options 在其中添加

    -Dcom.sun.management.jmxremote

    -Djava.rmi.server.hostname=XXXX.XXXX.XXXX(双网卡的需要指明,单网卡的可以不指定)
    -Dcom.sun.management.jmxremote.port=1090
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false

       之后再重启tomcat服务即可。

    若重启不成功,请检查添加的这几行是不是后面有空格。(若有多余的空格是启动不了的)

    四、jvuisualvm调试

    (1) windows下打开java安装目录bin目录下的jvisualvm.exe(C:Program FilesJavajdk1.7.0_45in);

    (2)在远程上右键,添加远程主机;

     

    (3)、在添加的远程主机上右键,添加Jmx(此处不需要密码,点击确定即可);

     

    (4)、双击连接查看Jvm运行情况

     

     

     

     

    图中红色的表示出现了死锁的情况,可以通过导出dump来查看问题。

  • 相关阅读:
    Python编码风格
    CI持续集成—记一次jenkins安装及ldap配置
    mysql主从同步失败处理
    redis优化
    sysbench
    Ubuntu12.04 Installation and Subversion(svn)
    MySQL 5.7 CLUSTER NDB 7.5 创建磁盘表 undo logfile group tablespace 内存表修改为磁盘表
    Java异步调用Future对象
    Java宝典(二)
    Java宝典(一)
  • 原文地址:https://www.cnblogs.com/sandyflower/p/9480941.html
Copyright © 2020-2023  润新知