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

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

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

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

一、监控本地java进程

1.JVisualVM(jdk自带工具)

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


    第二章:基于JVisualVM的可视化监控_第1张图片
    主界面.png

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

  • 监视视图


    第二章:基于JVisualVM的可视化监控_第2张图片
    监视视图.png

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


    第二章:基于JVisualVM的可视化监控_第3张图片
    堆Dump.png
  • 线程视图


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

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

第二章:基于JVisualVM的可视化监控_第6张图片
插件地址配置.png

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

二、监控远程java进程

1.连接远程Tomcat

  • 添加远程主机


    第二章:基于JVisualVM的可视化监控_第7张图片
    添加远程主机.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连接


    第二章:基于JVisualVM的可视化监控_第8张图片
    添加jmx连接.png

    第二章:基于JVisualVM的可视化监控_第9张图片
    设置连接.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的可视化监控)