文章来源:https://blog.csdn.net/a19881029/article/details/8432368

jvisualvm能干什么

监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析…

jvisualvmg已经被集成在jdk1.6以上的版本中(不是jre)。自身运行需要最低jdk1.6版本,但是可以监控运行在jdk1.4以上版本的java程序

以jdk1.6update45(jdk1.6update45自带的jvisualvm)来做说明,当然也可单独下载独立的jvisualvm,正常安装完jdk后,至jdk的bin目录下,运行jvisualvm.exe即可

网上有人说jvisualvm对ntfs的硬盘格式支持的不好(都说不好,也没说到底哪里不好),反正我用着是挺正常的,不管怎么样先把解决方式记下来吧

创建jvisualvm.exe的快捷方式,右键快捷方式选择属性,在“目标”栏中追加"-XX:+PerfBypassFileSystemCheck"

程序运行后会自动监控本机运行的java程序(Local标签下,远程服务器上的java程序需要另行配置),如果是下载的jvisualvm,解压后,运行bin目录下的jvisualvm.exe即可

Local标签下的第一个VisualVM为jvisualvm对自身的监控,可以看到消耗的资源还是很少的,第二个为本机的eclipse

监控项总共分为Overview,Monitor,Threads和一个Sampler。

1.Overview(jvm启动参数,系统参数)

可以看到eclipse的启动参数

(通过这些启动参数,可以判断程序是否有内存溢出)

2.Monitor

左上:cpu利用率,gc状态的监控

右上:堆利用率,永久内存区的利用率

左下:类的监控

右下:线程的监控

performGC:gc的详细运行状态

HeapDump:堆的详细状态(可以看到堆的概况,里面所有的类,还能点进具体的一个类查看这个类的状态)

3.Threads

能够显示线程的名称和运行的状态,在调试多线程时必不可少,而且可以点进一个线程查看这个线程的详细运行情况

监控服务器上的tomcat

tomcat的配置文件catalina.sh中增加:

JAVA_OPTS="-Dcom.sun.management.jmxremote.port=9998 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.58.164"

参数说明:

指定了JMX启动的代理端口,这个端口就是visualvm要连接的端口(9998端口不能被别的程序使用netstat -an|gerp 9998)
Dcom.sun.management.jmxremote.port=9998
指定了JMX是否启用ssl
Dcom.sun.management.jmxremote.authenticate=false
指定了JMX是否启用鉴权(需要用户名,密码鉴权)
Dcom.sun.management.jmxremote.authenticate=false
指定了服务器主机名
Djava.rmi.server.hostname=192.168.58.164

填写主机名:

右键创建一个jmx连接:

填写上端口号即可:

配置完成:

监控服务器上的java程序

相较于监控tomcat要麻烦很多,要预先启动jstatd服务(${java_home}/bin目录下)

jstatd是一个监控JVM从创建到销毁过程中资源占用情况并提供远程监控接口的RMI(Remote Method Invocation,远程方法调用)服务器程序,它是一个Daemon程序(后台进程),要保证远程监控软件连接到本地的话需要jstatd始终保持运行。

jstatd运行需要通过-J-Djava.security.policy=***指定安全策略,因此我们需要在服务器上建立一个指定安全策略的文件jstatd.all.policy(我放在了${java_home}/bin目录下),文件内容如下:

grant codebase "file:/home/123/123/jdk1.5.0_15/lib/tools.jar" { permission java.security.AllPermission;
}; 

然后使用这个策略文件启动jstatd服务

[123@123 bin]$ pwd
/home/123/123/jdk1.5.0_15/bin
[123@123 bin]$ ./jstatd -J-Djava.security.policy=./jstatd.all.policy &

因为监控的过程中需要jstatd服务一直运行,所以加上了&,如果需要日志也可使用:

./jstatd -J-Djava.security.policy=./jstatd.all.policy -J-Djava.rmi.server.logCalls=true

接下来就可以在jvisualvm中配置监控该服务器上运行的java程序了,和在jvisualvm中配置监控tomcat服务器的操作过程是一样的

需要特别注意的是,有时在配置远程监控java程序的时候jvisualvm会报一个错误

点击查看错误详情:

connection refused to host:127.0.0.1初步判断和主机名有关系

[123@123 bin]# hostname -i
127.0.0.1
[123@123 bin]# hostname 192.168.58.168

修改完重启jstatd服务(网上很多人说要修改主机的/etc/hosts文件,但是我自己测试修改/etc/hosts文件是没有效果的,必须要修改主机名)

填写主机名:

这里要选添加一个jstatd连接:

直接选择默认配置即可(默认使用1099端口):

点击ok后,168上的所有java程序就会自动列出:

PS:

jvisualvm也是可以安装插件的,具体步骤为tool -> plugin ->aviable plugin,推荐一个非常好用的插件VisualGC

安装完这个插件后,将会增加新的监控条目Visual GC,可以看到虚拟机内存各个区的使用情况

jvisualvm (Java VisualVM)相关推荐

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

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

  2. JDK自带的jvisualvm在安装插件时报代无法连接Java VisualVM插件中心

    在安装之前需要将电脑的防火墙关闭. JDK自带的jvisualvm在安装插件时报代无法连接Java VisualVM插件中心,如图: 这个呢,需要修改设置中的url 在修改url之前,先到https: ...

  3. 【Java 虚拟机原理】垃圾回收算法( Java VisualVM 工具 | 安装 Visual GC 插件 | 使用 Java VisualVM 分析 GC 内存 )

    文章目录 一.Java VisualVM 工具安装 Visual GC 插件 二.使用 Java VisualVM 分析 GC 内存 一.Java VisualVM 工具安装 Visual GC 插件 ...

  4. 【Java 虚拟机原理】堆区 | Java VisualVM 工具

    文章目录 一.Java VisualVM 工具 二.堆区 一.Java VisualVM 工具 Java 中提供了一个监控当前设备 Java 程序的工具 Java VisualVM ; 在命令行中执行 ...

  5. 使用Java VisualVM分析您的应用程序

    当您需要发现应用程序的哪个部分消耗更多的CPU或内存时,必须使用探查器执行此操作. 默认情况下,Sun JDK中附带的一个探查器是Java VisualVM. 这个事件探查器非常简单易用,功能强大. ...

  6. Jconsole工具和Java VisualVM

    一.简介 Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到.它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监 控,并画出大量的图表,提供强 ...

  7. 安装Java Visualvm监控堆内存和参数说明

    安装Java Visualvm监控堆内存和参数说明 1.概述 这篇文章介绍使用Java Visualvm工具监控堆内存VisualGC插件的安装以及监控堆内存参数说明. 摘要 VisualGC插件安装 ...

  8. IDEA-集成VisualVM插件,启动Java VisualVM

    起因: 我忘了我之前起程序去关联Java VisualVM是咋配的了今天百度搜的时候意外发现idea可以直接起,只需要安装VisualVM插件然后启动Java VisualVM 安装VisualVM插 ...

  9. Java VisualVM(Java性能分析工具)插件安装及JDK版本对应插件中心地址

    参考文章: VisualVM(3) 插件安装与更新路径配置 Java VisualVM插件地址 安装jvisualvm的时候,发现插件可用为0,错误提示"连接插件中心超时".上网查 ...

  10. 解决:无法连接Java VisualVM 插件中心, 因为Server returned HTTP response code: 503 for URL: http://www.oracle.com/

    错误 解决办法 1.打开visualvm官方插件网址:https://visualvm.github.io/pluginscenters.html 2.选择适合你自己安装的jdk版本对应的Java V ...

最新文章

  1. P1086 花生采摘
  2. c语言cin n1 n2,牛客等级之题N1 追债之旅 - N2 Rinne Loves Study(8.6场)
  3. 报错 之 from typing import OrderedDict ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘
  4. jquery正则表达式验证:验证全是数字
  5. 王爽 汇编语言第三版 第9章 转移指令的原理
  6. 基因组中的趣事(一):这个基因编码98种转录本
  7. 关闭oracle的几种方法,Oracle数据库的几种启动和关闭方式 | 旺旺知识库
  8. Java面试之synchronized和Lock有什么区别?
  9. 故障常见原因归类分析及预防和应对措施
  10. lopatkin俄大神Windows精简版系统安装注意事项及恢复OneDrive
  11. sql里的正则表达式
  12. 游戏辅助原理与制作02-植物大战僵尸02-金币基址
  13. SpringBoot 与 Kotlin 完美交融
  14. 基于processing的《代码本色》应用拓展——表现随机行为及牛顿运动学
  15. pe如何查看计算机用户名,用PE如何查看系统版本
  16. Android——UI开发的点点滴滴1
  17. mysql节假日函数_如何在MySQL中计算不包括周末和节假日的日期差
  18. 计算机与算盘有什么区别
  19. 【EasyRL学习笔记】第八章 针对连续动作的深度Q网络
  20. 联想拯救者y空间_锐龙H真给劲儿 联想拯救者R7000 2020首测

热门文章

  1. 解决红蜘蛛教师端教师图标显示灰色导致无法广播的问题
  2. jpg转pdf怎么转换?jpg转pdf方法
  3. STM32程序下载电路分析
  4. cad插件_CAD插件燕秀工具箱2.81
  5. 图解TCPIP 学习笔记(一)
  6. air文件打包成exe
  7. 黑马程序员—怎么去黑马?吃住问题解答
  8. eclipse汉化包安装步骤
  9. 计算机常见错误代码,电脑常见错误蓝屏代码汇总及解决方法
  10. 教师资格证信息技术主观题