博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用JVisualVM进行性能分析
阅读量:5938 次
发布时间:2019-06-19

本文共 917 字,大约阅读时间需要 3 分钟。

hot3.png

地址:

连接

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的问题:

 

插件安装

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

 

插件列表:

 

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

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

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

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

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

增加下列行

grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission;};
 

然后启动 jstatd并且不要关闭

如:

Threads

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

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

参看这个例子:

profile

关于如何使用,如何分析程序,可以参看这个例子:

 

 

转载于:https://my.oschina.net/u/178116/blog/424270

你可能感兴趣的文章
图标字体设计
查看>>
【转】Principles of training multi-layer neural network using backpropagation
查看>>
python字符串操作
查看>>
基础才是重中之重~Dictionary<K,V>里V的设计决定的性能
查看>>
查看Oracle中存储过程长时间被卡住的原因
查看>>
完美解决 IOS系统safari5.0 浏览器页面布局iframe滚动栏失效问题
查看>>
升级gitk后,Error in startup script: unknown color name "lime"
查看>>
并查集hdu1232
查看>>
改动Androidproject的名称(非Eclipse重命名)
查看>>
tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空...
查看>>
dedecms后台左侧菜单500错误怎么处理
查看>>
Maven配置将war包部署到Tomcat(tomcat7-maven-plugin)
查看>>
JavaScript -- throw、try 和 catch
查看>>
mui 页面传值
查看>>
How Vmware snapshots works
查看>>
POJ 2533 Longest Ordered Subsequence(DP 最长上升子序列)
查看>>
为jqgrid添加统计金额页脚
查看>>
node js npm 和 cnpm的使用
查看>>
Spring MVC学习-------------訪问到静态的文件
查看>>
Unity应用架构设计(11)——一个网络层的构建
查看>>