zoukankan      html  css  js  c++  java
  • 如何使用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  

    增加下列行

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

  • 相关阅读:
    本周学习进度条2
    web—图表表示数据库中的数据
    Intern Day36
    计算机网络
    面试
    C++
    计算机网络
    腾讯PC客户端开发暑期实习一面
    TCP和UDP
    Intern Day34
  • 原文地址:https://www.cnblogs.com/zhengah/p/4936098.html
Copyright © 2011-2022 走看看