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

    【官方文档】:Using JConsole

    1. 简介

      JConsole是一个内置Java性能分析器,可以从命令行或在GUI shell中运行。您可以轻松地使用JConsole(或者,它更高端的近亲” VisualVM)来监控Java应用程序性能和跟踪Java中的代码。

      JConsole 工具以 java.lang.management API 为基础进行构建。JConsole 将连接到运行在同一个工作站或远程工作站上的应用程序。这些应用程序必须配置为允许访问

      JConsole 连接到 Java 应用程序之后,会报告该应用程序的相关信息。详细信息包括内存使用情况、正在运行的线程和已装入类。该数据将帮助您监控应用程序和 JVM 的行为。该信息有助于了解性能问题、内存使用问题、挂起或死锁

    2. 基本配置

    2.1 JVM启动参数配置 

      -Djava.rmi.server.hostname=127.0.0.1

      配置的主机名信息,jconsole 远程连接时需要输入主机名  

      -Dcom.sun.management.jmxremote

      开始 jmxremote 配置

      -Dcom.sun.management.jmxremote.port=8899

      jconsole 连接的端口

      -Dcom.sun.management.jmxremote.authenticate=false

      是否认证信任凭证

      -Dcom.sun.management.jmxremote.ssl=false

      是否启用SSL

    2.2 信任凭证配置

      如果设置了信任凭证校验,则需要使用指定的用户及密码远程连接。

      配置文件在 jre/lib/management 目录下:

      

    2.2.1  jmxremote.access

      

       定义远程连接用户的操作权限

    2.2.2 jmxremote.password

      

       定义远程连接用户的密码信息(明文存储)

    3. 本地连接

    3.1 启动 jconsole

      在JDK的 bin 目录下启动 jconsole.exe ,界面如下:

      jconsole会显示本地Java虚拟机上运行的Java程序

      

     3.2 Windows下查询程序的pid

      根据程序监听的端口号查询对应的 PID

      netstat  -ano | findStr  9527

      

    3.3 连接程序

      界面选择 pid 为 15160 的程序进行连接,连接成功后如下所示:

      

    4. 远程连接

      远程连接不知道是环境问题,还是别的原因,死活连不上,最后用 jvisualvm 连接成功。

      中间参考了一下几篇文章,还算干货,大家可以参考一下:

      【参考文章】:JConsole远程连接配置

      【参考文章】:windows下如何正确使用Jconsole远程连接linux主机上的JVM

      【参考文章】:JVM监测分析JConsole 

    5.jvisualvm

      配置基本和 jconsole 一样;

  • 相关阅读:
    控制容器的反转和依赖注入模式
    缓存和内存区别
    数据库知识总结:sqlserver中事务总结:begin tran,rollback tran,commit tran +IndexDB总结
    SqlServer数据库1433端口问题1
    网络配置:IP+NETMASK+GATEWAY+DNS
    Shell脚本中非交互式修改密码的方法(转)
    Linux之sed:删除某行以及替换
    每日命令:(3)pwd
    Linux目录结构详细介绍
    关于Linux字符集的查看及修改
  • 原文地址:https://www.cnblogs.com/virgosnail/p/11552363.html
Copyright © 2011-2022 走看看