zoukankan      html  css  js  c++  java
  • JVM监控工具之JVisualVM

    一、简介

    JVisualVM是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。

    二、配置

    通过JVisualVM远程连接服务器监控JVM,需要在被监控的服务器上tomcat的启动文件catalina.sh中加入以下配置:

     JAVA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.182.130 -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 

    JMX的相关参数:

    参数名 类型 描述
    -Dcom.sun.management.jmxremote 布尔 是否支持远程JMX访问,默认true
    -Dcom.sun.management.jmxremote.port 数值 监听端口号,方便远程访问
    -Dcom.sun.management.jmxremote.authenticate 布尔 是否需要开启用户认证,默认开启
    -Dcom.sun.management.jmxremote.ssl 布尔 是否对连接开启SSL加密,默认开启
    -Dcom.sun.management.jmxremote.access.file 路径 对访问用户的权限授权的文件的路径,默认路径JRE_HOME/lib/management/jmxremote.access
    -Dcom.sun.management.jmxremote. password.file 路径 设置访问用户的用户名和密码,默认路径JRE_HOME/lib/management/ jmxremote.password

    三、连接

    四、模块介绍

    1、概述

    概述界面,主要显示JVM的信息,包括JVM参数以及系统属性等

    2、监视

    (1)按钮“执行垃圾回收”可通知JVM执行Full GC

    (2)按钮“堆Dump”可生成堆内存快照,下面详细讲解堆Dump的使用

    2.1、堆dump

      2.1.1、概要

           首先生成堆内存快照

         

            把文件下载到本地后使用JVisualVM打开,如下图:

         

        (1)红框标注的箭头处,可以凭你的点击顺序切换前后窗口

        (2)查询最大的对象,个数可自行定制;

        (3)点击“显示线程”可以显示线程细节,如下所示:

           

          (1)timed_waiting和runnable表示线程运行状态

        (2)daemon表示这个线程是守护线程,如没有标记daemon则表示它是一个用户线程,如main线程

        (3)prio表示该线程的优先级,在java线程中数字越大优先级越高,取值在1至10之间,默认为5

        (4)点击被标注成蓝色的相关类,可以在类实例数界面查看细节

      2.1.2、实例数

      

      (1)右上角的三个按钮可以对界面进行定制

      (2)点击“计算保留大小”可计算每个field的保留尺寸,简言之就是它所占的byte值

      (3)右下角红框处标记出了,不同的图形代表不同的角色

      2.1.3、类

      

      (1)左下角可以通过过滤器来过滤显示视图

      (2)右击某个类可以让其在实例界面显示,查看其细节

      (3)点击右上角红框处可以与另一个内存快照进行比较,在比较视图中可以看出每个类的增加和减少的情况

      2.1.4、QQL控制台

      

      (1)选中具体的Query实例,点击打开,再点击执行就可以进行查询了,保存按钮可以保存你的query语句

      (2)比较实用的是PermGen分析语句

    3、线程

    (1)线程的颜色从绿、紫、黄、褐、橙,分别代表运行、休眠、等待、驻留和死锁

    (2)点击线程Dump即可生成线程快照,其功能跟监视里面堆dump生成的heapdump文件里面的显示线程类似,如下图:

    4、抽样器

    4.1、抽样器简介:

      (1)通过“设置”可以对CPU的采样来源以及内存的刷新时间进行设置

      (2)点击CPU或者内存即可开始监控,点击Stop则停止采样

    4.2、CPU

    4.2.1、CPU样例

    (1)点击线程Dump可生成线程快照

    (2)点击快照可生成线程的快照,快照里面包含了所有线程的调用树以及其热点编译情况,如下图所示:

    4.2.2、线程CPU时间

    (1)点击增量按钮后,可记录线程的变化,功能有点类似JProfilter的“Mark Current Values”。

    4.3、内存

    4.3.1、堆柱状图

     功能与前面介绍过的类似

    4.3.2、每个线程分配

     功能与前面介绍过的类似

  • 相关阅读:
    抓包工具fiddler使用-初级
    nginx负载均衡配置详解
    nginx常用配置
    nginx介绍及常用功能
    算法分析实验之The Josephus Problem(约瑟夫问题)
    算法分析实验之Locker doors
    算法分析实验之花生采摘
    算法分析实验之俄式乘法
    算法分析实验之翻煎饼
    java(一)Hello World
  • 原文地址:https://www.cnblogs.com/L-Test/p/9502659.html
Copyright © 2011-2022 走看看