码迷,mamicode.com
首页 > 其他好文 > 详细

如何使用JVisualVM进行性能分析

时间:2019-01-08 17:18:31      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:miss   多个   border   perm   jvm参数   案例   ima   att   java.net   

地址:https://visualvm.dev.java.net/

连接

1、本地机器的程序直接可以监听到

2、远程机器的程序需要加上JVM参数

-Dcom.sun.management.jmxremote= true
-Dcom.sun.management.jmxremote.port= 9090
-Dcom.sun.management.jmxremote.ssl= false
-Dcom.sun.management.jmxremote.authenticate= false

备注:另外需要检查

hostname –i

看解析出来是否为本地的IP,如是127.0.0.1或者IP为多个IP中之一,则其他的IP无效,会连接不上。

这里有个分析案例,利用jvisualvm分析tomcat的问题:

http://blog.tty.nl/2010/09/03/using-visualvm-to-fix-live-tomcat-and-jvm-problems

 

插件安装

tools->plugin->Available Plugin 会有值得安装的插件,如:VisualGC JConsole


技术分享图片

 

插件列表:https://visualvm.dev.java.net/plugins.html

 

注意:上面提供的端口配置有些麻烦,不如直接这样做:

要使用 VisualGC 必须在远程机上启动jstatd代理程序,否则会显示 “not supported for this jvm” 错误

而启动 jstatd 时会有一个权限问题,需要做如下修改:

nano /opt/sun-jdk- 1.6 . 0.26 /jre/lib/security/java.policy

Java代码  技术分享图片
  1. nano /opt/sun-jdk-1.6.0.26/jre/lib/security/java.policy  

增加下列行

Java代码  技术分享图片
  1. grant codebase "file:${java.home}/../lib/tools.jar" {  
  2.  permission java.security.AllPermission;  
  3.   
  4. };  

 

然后启动 jstatd并且不要关闭

如:
技术分享图片

 

 

Threads


技术分享图片

查看线程的运行情况,运行、停止、睡眠、等待,根据这些结合实际程序运行的逻辑分析。

找到可疑份子,可以Thread Dump  找出具体是哪个线程在作祟。

参看这个例子:http://blog.tty.nl/2010/09/03/using-visualvm-to-fix-live-tomcat-and-jvm-problems

profile

关于如何使用,如何分析程序,可以参看这个例子:http://www.baptiste-wicht.com/2010/07/profile-applications-java-visualvm/

如何使用JVisualVM进行性能分析

标签:miss   多个   border   perm   jvm参数   案例   ima   att   java.net   

原文地址:https://www.cnblogs.com/liuys635/p/10239857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!