zoukankan      html  css  js  c++  java
  • JVM的监控工具之jconsole

    JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。管理的是什么?管理的是监控信息、永久代的使用信息、类加载等等

    如果我们想监控本机的某一个java程序的运行,那么直接输入jconsole(windows下可以弹出图形化界面,linux 下无法弹出图形化界面)即可,

    可以看到本机的java 进程,

    点击其中一个就可以进入图形化界面,然后对其进行监控查看堆信息,以及进行死锁检测。

    监控eureka 线程,里面有一栏是线程,下有检测死锁的功能,未检测到死锁,说明不存在死锁:

    点击未检测到死锁,

    然后监控查看deadlock进程,点击检测死锁,发现了三个死锁的线程,点击线程可以查看阻塞的地方,不同版本JDK这里可能有所差异,网上的部分资料说这里会有红色的提示,:

     监控界面上还有执行GC的功能,点击GC后发现内存确实堆内存占用有所下降:

     上面讲了如何监控本机的JAVA线程,如果想监控远程tomcat的的进程呢

    需要在catalina.sh 中添加如下配置:

    JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.54.5"  ## 配置远程的主机
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8888"  ## 配置远程jMX端口
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=8888"  ## 配置远程jMX端口
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticat=true"  ## ## 配置远程jMX 是否需要认证
    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false" ## 配置远程jMX是否需要ssl

    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticat=true"  因环境不同而有所差异,我本机必须配置为true,false 访问不了

    既然开启了远程的认证,必然存在认证的用户名和密码问题,密码配置参考博客:https://www.cnblogs.com/wanfeng/p/9582226.html

    链接远程的tomcat:

    远程tomcat的catalina.sh 配置如下:

  • 相关阅读:
    JSONObject和JSONArray区别及基本用法
    MySQL中UTF8编码的数据在cmd下乱码
    js页面刷新跳转的几种方式及区别
    JS中使用EL表达式
    $.ajax()方法参数详解
    Firefox默认英文修改中文
    配置文件的相对地址和绝对地址设置
    IntelliJ IDEA设置统一编码utf-8
    java.lang.SecurityException: Prohibited package name:
    flask的多个url对应同一个视图函数
  • 原文地址:https://www.cnblogs.com/cheng21553516/p/11241237.html
Copyright © 2011-2022 走看看