如何使用JVisualVM进行性能分析

简介: 如何使用JVisualVM进行性能分析

地址: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

如果遇到启动不起来,并抛出类似一下异常,

[root@badboy global]# Error: Exception thrown by the agent :

java.net.MalformedURLException: Local host name unknown:

java.net.UnknownHostException: badboy: badboy: Name or service not known

则需要在/etc/hosts 添加 主机名字映射到IP地址的方法

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.37 GM001



这里有个分析案例,利用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/

目录
相关文章
|
3月前
|
数据可视化 Go 数据库
性能分析神器:pprof命令详解与实战
性能分析神器:pprof命令详解与实战
532 0
性能分析神器:pprof命令详解与实战
|
3月前
|
并行计算 数据可视化 安全
可视化性能分析器nvvp的安装
可视化性能分析器nvvp的安装
|
Arthas 监控 Java
【JVM性能分析】「Arthas技术专题」安装入门及基础指令介绍
【JVM性能分析】「Arthas技术专题」安装入门及基础指令介绍
213 0
【JVM性能分析】「Arthas技术专题」安装入门及基础指令介绍
|
Web App开发 移动开发 缓存
实战演示 H5 性能分析
实战演示 H5 性能分析
|
Web App开发 移动开发 缓存
干货 | H5性能分析实战来啦~
干货 | H5性能分析实战来啦~
|
Web App开发 缓存 移动开发
实战演示 H5 性能分析
使用chrome浏览器对webview进行手工查看,伴随着业务增多,数量加大,手工操作的速度会无法跟上业务增长,此时需要自动化方法测试webview性能。 当页面加载时,会渲染一系列内容,渲染过程可分为多个阶段,比如下图: ![](https://ceshiren.com/uploads/default/original/3X/d/7/d7eab38d60e4430a01c658f6605
|
开发框架 .NET C#
C#与C++混合编程及性能分析
C#与C++混合编程及性能分析
753 0
C#与C++混合编程及性能分析
|
存储 前端开发 Java
esrally性能分析结果图形化展示深入详解
0、前提 安装elasticsearch的最新版本,目前是2.3.4版本。 elsticsearch新增扮演的角色是:rally分析结果会存储到elasticsearch。
145 0
esrally性能分析结果图形化展示深入详解
|
存储 监控 Oracle
使用 VisualVM 和 JProfiler 进行性能分析及调优
在我们开发大型 Java 应用程序的过程中,难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。在本文中,我们主要介绍 VisualVM 和 JProfiler 这两款性能分析工具。
3458 1
使用 VisualVM 和 JProfiler 进行性能分析及调优
|
缓存 监控 测试技术
JProfiler性能分析
为了比较缓存注解与缓存非注解和不使用注解之间比较QPS、RT内存使用情况的,使用JProfiler对三种情况进行分析。
637 0