第二章:基于JVisualVM的可视化监控

作者: 秦仙云 | 来源:发表于2018-07-16 22:21 被阅读182次

    本文主要参考慕课网若鱼老师课程Java生产环境下性能监控与调优详解

    请支持正版,抵制盗版,维护每一位辛苦付出的人的合法权益!

    本章关键词:JVisualVM、本地监控、远程监控

    一、监控本地java进程

    1.JVisualVM(jdk自带工具)

    • 工具在jdk/bin目录下,windows双击.exe文件运行,主界面如下


      主界面.png

      连接本地java进程不需要进行任何配置,自动连接

    • 监视视图


      监视视图.png

      堆Dump和MAT功能很相似,但是相对于MAT功能会差一点,也可以将.hprof文件引入


      堆Dump.png
    • 线程视图


      线程视图.png
    线程Dump.png
    • 抽样器
      对cpu或者内存(类似执行jstat)进行抽样
      比如cpu抽样,可以看到那些地方的方法执行的时间比较长,便于定位问题
    • 安装插件
      点击“工具”->“插件”进入插件界面,
      将插件地址配置为下面官网选择的地址

    进入官网,根据jdk版本选择地址

    插件地址配置.png

    配置完成后,可以到可用插件中安装插件
    Visual GC:图形化的展示各区的内存变化
    BTrace Workbench:编写BTrace脚本

    二、监控远程java进程

    1.连接远程Tomcat

    • 添加远程主机


      添加远程主机.png
    • 配置jmx
      tomcat中,修改Catalina.sh文件

    JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=10.110.3.62"

    -D设置了一个属性,port业务连接端口9004(本地连接远程jmx的端口)
    authenticate是否启用认证
    ssl不启用
    preferIPv4Stack优先使用ipv4
    hostname远程主机地址

    • 添加jmx连接


      添加jmx连接.png
      设置连接.png
    • 各个视图和本地连接是一样的,参考本地连接

    2.监控远程普通Java进程

    • 添加启动参数(参数和tomcat的一致)

    nohup java -Dcom.sun.management.jmxremote
    -Dcom.sun.management.jmxremote.port=9005
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false
    -Djava.net.preferIPv4Stack=true
    -Djava.rmi.server.hostname=10.110.3.62
    -jar monitor_tuning.jar &

    monitor_tuning.jar为打包成jar文件的项目

    VisualVM详情请参考官方文档,可以选择中文版去看

    相关文章

      网友评论

        本文标题:第二章:基于JVisualVM的可视化监控

        本文链接:https://www.haomeiwen.com/subject/bbgppftx.html