如何使用JVisualVM进行性能分析
2015-11-04 15:14
567 查看
地址: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 |
这里有个分析案例,利用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代码
nano /opt/sun-jdk-1.6.0.26/jre/lib/security/java.policy
增加下列行
Java代码
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
然后启动 jstatd并且不要关闭
如:
Threads
查看线程的运行情况,运行、停止、睡眠、等待,根据这些结合实际程序运行的逻辑分析。
找到可疑份子,可以Thread Dump 找出具体是哪个线程在作祟。
参看这个例子:http://blog.tty.nl/2010/09/03/using-visualvm-to-fix-live-tomcat-and-jvm-problems
profile
关于如何使用,如何分析程序,可以参看这个例子:http://baptiste-wicht.com/posts/2010/07/profile-applications-java-visualvm.html
相关文章推荐
- 你应该成为 Web 开发者的 5 大理由—兄弟连IT教育
- CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证
- CentOS6.5最小化安装包选择
- 数据结构与算法
- iOS学习之OC语法基础-类和对象-什么是类
- Python变量类型
- Android目录介绍&UI简介
- Pixhawk控制电机命令pwm源码详解
- 【HDOJ】1254 推箱子
- hadoop的文件压缩
- struct2源码解读(2)之struct2初始化
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Some solutions for simple errors/exceptions when setting up Spring
- 使用JavaScript和CSS实现文本隔行换色的方法
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Android:Layout_weight的深刻理解
- 在iOS中扫描银行卡得到 银行卡的基本信息,暂时只支持 建行
- oracle创建表中LONG字段类型的使用注意事项
- 编译链接boost库
- Jmeter学习(一)——配置、安装