jvisualvm是SUN/Oracle JDK自带的JVM运行状态监测工具,能够获取JVM运行状态的各种信息,包括Thread Dump和Heap Dump,在可以使用的情况下建议使用此工具监测JVM运行状态。

连接远程JVM

jvisualvm只能远程连接启用了JMX远程监测的JVM,JVM启动时需要设置一些系统属性来启用JMX远程监测。

JVM中JMX相关的配置文件及说明位于固定位置,一般位于“JDK/ jre/lib/management”,其中有JMX配置的模板文件。因为一般JDK在服务器上是公用的,因此不应该直接在此位置更改JMX配置,而应该复制其中的文件后更改,并在JVM的启动参数中指定使用更改后的文件。

在JVM启动参数中指定JMX配置文件的方式为:-Dcom.sun.management.config.file=<somewhere>.management.properties,JMX的配置信息在此文件中设置,下面描述JMX配置文件中的典型配置。

  • 无认证方式

启用JMX并且不进行认证,此时任何JMX客户端都可以远程连接到此JVM进行远程监测,因此安全性很差,但在开发调试和测试环境中较为方便。在JVM启动参数中设置“-Dcom.sun.management.config.file=C:\JMXRemote\java.noauth.management.properties”,同时在JMX配置文件(C:\JMXRemote\java.noauth.management.properties)中设置下面的值:

#设置JMX端口号,JMX客户端连接时使用此端口

com.sun.management.jmxremote.port=9999

#设置JMX不使用SSL连接

com.sun.management.jmxremote.ssl=false

#设置JMX客户端连接本JVM时无需身份认证

com.sun.management.jmxremote.authenticate=false

上述设置后启动JVM,则任何JMX客户端均可以连接此JVM并进行JVM运行状态监测。

  • 认证方式

启用JMX且需要身份认证,只有认证通过的JMX客户端才能够连接到此JVM进行监测。在JVM启动参数中设置“-Dcom.sun.management.config.file=C:\TEMP\JMXRemote\auth\management.properties”,并在此文件中设置下列值:

#设置JMX端口号,JMX客户端连接时使用此端口

com.sun.management.jmxremote.port=9999

#设置JMX不使用SSL连接

com.sun.management.jmxremote.ssl=false

#设置JMX客户端连接本JVM时需要身份认证

com.sun.management.jmxremote.authenticate=true

#设置身份认证文件地址

com.sun.management.jmxremote.password.file=C:/TEMP/JMXRemote/auth/jmxremote.password

#设置角色文件地址

com.sun.management.jmxremote.access.file=C:/TEMP/JMXRemote/auth/jmxremote.access

注意:access和password文件必须正确设置才能生效,建议只改动password文件中的口令以避免其他错误。而且jmxremote.password文件必须正确设定其在文件系统中的权限,否则JVM无法启动,通常需要设置为此文件只有所有者能够访问。如果需要设置JMX Server的监听地址,可以设置下列参数:

-Djava.rmi.server.hostname=x.x.x.x"

上述设置后启动JVM,则任何JMX客户端均可以连接此JVM并进行JVM运行状态监测。

当设置了JMX远程监测后启动JVM(如启动Tomcat)后,可以在其他机器上用jvisualvm远程监测此JVM(如Tomcat),过程如下:

启动jvisualvm,增加远程主机(即配置了JMX的JVM所在的主机),如下图:

输入远程主机地址,如下图:

确定后,增加JMX连接,如下图:

输入JMX连接信息,JMX端口信息即是com.sun.management.jmxremote.port=9999中设定的端口号,如下图:

确定后,如果JMX配置为无认证需求,则连接完成;否则将要求输入JMX连接用户名和口令,即在文件com.sun.management.jmxremote.password.file=<password_file>中设置的用户名和口令。如下图:

用户名和口令验证成功后连接完成,如下图:

获取Thread Dump

直接在jvisualvm中获取Thread Dump,如下图:

Thread Dump的结果如下图:

在其中进行Thread Dump分析即可。

获取Heap Dump

直接在jvisualvm中获取Heap Dump,如下图:

执行Heap Dump后将提示Heap Dump创建位置,如下图:

确定后将创建Heap Dump文件,之后在MAT中分析此文件即可。

转载于:https://www.cnblogs.com/xiongmaotailang/p/5249651.html

jvisualvm工具相关推荐

  1. 【JVM调优工具篇】jvisualvm工具导出dump文件教程

    1.首先启动程序(需确保程序一直在运行中) 2.打开JvisualVM工具 3.打开对应的程序进程 4.点击线程->线程dump 5.右键快照->另存为 6.结束

  2. JVM调优之JConsole和JVisualVM工具使用

    JVM调优过程中,常用JDK自带的两个工具JConsole和JVisualVM,有助于分析问题.下面是两个工具的使用方式.(我发现好多小伙伴居然都不知道这么强大的工具) 一.JConsole使用. 1 ...

  3. 使用jvisualvm工具排查springboot工程内存溢出

    最近在做压力测试时,经常会出现内存溢出,总结一下排查步骤. 一.使用如下命令启动springboot工程 nohup java -jar -Dcom.sun.management.jmxremote. ...

  4. JVisualVM工具查看Java堆的情况

    1.找到Java的安装目录,此工具在Java的bin目录下,用jvisualvm.exe工具来进行实时监测堆的使用情况,如图: 2.打开之后,找到jvisualvm.exe工具并双击 3.弹出java ...

  5. JVM调优:运行参数,内存模型,mat、jps、jstat、jmap、jstack、jvisualvm工具的使用

    JVM调优 - 工具篇 作者:张学亮 讲解内容 了解下我们为什么要学习JVM优化 掌握jvm的运行参数以及参数的设置 掌握jvm的内存模型(堆内存) 掌握jamp命令的使用以及通过MAT工具进行分析 ...

  6. java 虚拟机(jvm)-06-JVM jdk 自带工具 jstack jconsole jvisualvm jmap jinfo

    jdk 自带工具 在 java 安装目录 bin 下. 你可以看到对应的信息,这里有很多 java 为我们提供的工具. $ ls appletviewer.exe* java-rmi.exe* jav ...

  7. 使用JDK自带jvisualvm监控tomcat

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  8. arthas 排查内存溢出_小学妹问我:如何利用可视化工具排查问题?

    有关JVM问题排查的可视化工具有很多,比如说JDK自带的jconsole.jvsualvm等,第三方有MAT.GChisto.GCView等. jconsole查看内存回收情况 jconsole工具在 ...

  9. Java VisualVM 插件地址,安装Visual VM插件,修改下载插件地址使插件可以直接在JVisualVM中进行下载

    Java VisualVM 插件地址 打开Java VisualVM检查更新插件时,默认的连接连不上,通过浏览器访问之后发现默认的服务器已经404,新地址已经迁移到github,下面这个地址里面有不同 ...

  10. 【转】使用JDK自带jvisualvm监控tomcat

    转载地址: http://my.oschina.net/kone/blog/157239 jdk自带有个jvisualvm工具.该工具是用来监控java运行程序的cpu.内存.线程等的使用情况.并且使 ...

最新文章

  1. C#中调用C++ 动态链接库 dll 的方法
  2. 2.10 局部最优的问题-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  3. addeventlistener事件第三个参数 passive_JS DOM 事件流、事件冒泡
  4. linux here用法,linux shell的here document用法(cat EOF)
  5. 弹琴、cosplay、打羽毛球……现在的机器人都是戏精丨世界机器人大会
  6. 电商直播运营的思路流程
  7. 软件测试视频课网盘,软件测试工程师必学视频教学全套五合一
  8. Bartender 连接MySql数据库并对模板赋值打印标签二维码
  9. HTML如何实现简单登录页面
  10. 小学生python游戏编程6----碰边变颜色的小球
  11. 什么是字节?字节怎么进行换算?
  12. win10设置HTML桌面背景,win10系统分屏设置不同壁纸教程
  13. linux bigendian未定义,big endian与little endian
  14. 传奇服务器如何修改地图和刷怪,传奇如何将怪物刷在指定地图?
  15. 伸缩的菜单html,javascript伸缩菜单栏实现代码分享
  16. win7无法信息服务器安装程序,主编为你win7系统纯净版安装程序提示“microsoft注册服务器已停止工作”的解决方法...
  17. P4409 [ZJOI2006]皇帝的烦恼(20190922B)(乱搞)
  18. JSD-2204-Vue-ElementUI-Day06
  19. 剪辑软件生产力工具pr,ae,达芬奇对比
  20. Linux 追踪技术 ftrace 简介(一)

热门文章

  1. Shanda EZ Mini
  2. 【评测通知】中国计算语言学大会(CCL 2021)发布5项技术评测任务
  3. “公益AI之星”挑战赛-新冠疫情相似句对判定大赛
  4. 【ACL 2019】预训练语言模型的最新探索
  5. leetcode—22.二分查找题目leetcode总结
  6. Datawhale编程学习之排序(3)
  7. 不会真有人觉得聊天机器人难吧
  8. 《统计学习方法》——支持向量机
  9. 活动目录(LiveFolder)
  10. 做真正Hacker 的乐趣──自己动手去实践