如何使用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

备注:另外需要检查

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
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. };
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://www.baptiste-wicht.com/2010/07/profile-applications-java-visualvm/

时间: 2024-10-08 00:36:15

如何使用JVisualVM进行性能分析的相关文章

JVisualVM 进行性能分析及调优

VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump.Thread Dump.内存对象实例情况.GC执行情况.CPU消耗以及类的装载情况. Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况. 下载页面 : https://visualvm.dev.java.n

使用 VisualVM 进行性能分析及调优

开发大型 Java 应用程序的过程中难免遇到内存泄露.性能瓶颈等问题,比如文件.网络.数据库的连接未释放,未优化的算法等. 随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃.为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化.VisualVM 是一款免费的性能分析工具.它通过 jvmstat.JMX.SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行

[转]程序进行性能分析工具gprof使用入门

性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是要重点测试版本的性能表现和稳定性的.对于软件测试过程中发现的性能问题,如何定位有很多的方法.基本的方法可能是开发者对代码进行review,或者是使用一些工具对代码进行性能分析.常见的性能分析tuning工具有哪些呢?下面两篇文章做了详细的总结: https://computing.llnl.gov/

Linux C++程序进行性能分析工具gprof使用入门

性能分析工具 软件的性能是软件质量的重要考察点,不论是在线服务程序还是离线程序,甚至是终端应用,性能都是用户体验的关键.这里说的性能重大的范畴来讲包括了性能和稳定性两个方面,我们在做软件测试的时候也是要重点测试版本的性能表现和稳定性的.对于软件测试过程中发现的性能问题,如何定位有很多的方法.基本的方法可能是开发者对代码进行review,或者是使用一些工具对代码进行性能分析.常见的性能分析tuning工具有哪些呢?下面两篇文章做了详细的总结: https://computing.llnl.gov/

使用golang的pprof包对程序进行性能分析

程序经常出现OOM错误,然后关键字"go pprof"搜到文章<Go程序性能分析pprof>,该文章第二步说运行程序后会生成profile文件,但是编译运行后发现生成的profile文件大小一直为0,然后关键字"go pprof profile is empty"搜到文章<Golang pprof heap profile is empty>,该文章说在运行程序前添加环境变量GODEBUG="memprofilerate=1&quo

JVM 利用 VisualVM 对高并发项目进行性能分析(转)

出处:  深入理解 Java 虚拟机-如何利用 VisualVM 对高并发项目进行性能分析 原文地址:https://www.cnblogs.com/myseries/p/12084444.html

深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析

Java虚拟机深入理解系列全部文章更新中... 深入理解Java虚拟机-Java内存区域透彻分析 深入理解Java虚拟机-常用vm参数分析 深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别JVM内存分配文盲 深入理解Java虚拟机-如何利用JDK自带的命令行工具监控上百万的高并发的虚拟机性能 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析 深入理解Java虚拟机-你了解GC算法原理吗 前面在学习JVM的知识的时候,一般都需要利用相关参数进行分析,而分析一般

使用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 备注:另外需要

Java性能调优:利用VisualVM进行性能分析

JVisualVM 简介 VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的).在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发