知晓JVM系列(三) :常用的JVM监测工具

时间:2024-03-22 08:10:50



  JVM监测工具主要有下几种功能:
          1.jvm内部情况分析与了解。
                 对jvm参数、CPU、内存、堆等信息的查看和了解。
          2.性能调优。
                 调整软硬件融合度。
          3.应用运行时问题解决。
                如:
                         OutOfMemoryError,内存不足
                         内存泄露
                         线程死锁
                         锁争用(Lock Contention)
                         Java进程消耗CPU过高

一、可视化监测工具

      1.jvisualvm,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以进行程序应用快照。
                               2 、可以安装其他监测辅助插件。
                               3、性能分析,数据抽样。
jvisualvm界面如下:
知晓JVM系列(三) :常用的JVM监测工具
       2.jconsole,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
                               2、可以查看MBean信息。
jconsole的界面如下:
知晓JVM系列(三) :常用的JVM监测工具
         3.YourKit Java Profiler:是业界领先的Java剖析工具。
                  工具路径:http://www.warezaccess.com/search/yourkit.html 下载相应的版本安装即可。
                                安装方法可以参考以下两篇文章:
                                                       本机windows远程连接到linux服务器上监控java虚拟机的性能 : http://zhwj184.iteye.com/blog/764575
                                                       本机tomcat安装yourkit插件 : http://developer.51cto.com/art/201203/326454.htm
                                                       安装yourkit到IDE
                                运行模式:双击运行
                                基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以看各函数cpu资源消耗比例
                               3、可以监测CPU、内存、类、线程等运行信息。
                         特殊功能:
                               1、GC查看。
                               2.请求的执行路径查看。
yourkit软件界面如下:
        知晓JVM系列(三) :常用的JVM监测工具
       4.JProbe:一个企业级的Java剖析器。
                    工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                         基础功能:
                               1、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、覆盖分析
                               2、自动性能分析和度量报告
 jprobe软件界面如下:
       知晓JVM系列(三) :常用的JVM监测工具
    4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
                        工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                                         具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
                                                                           http://blog.csdn.net/djy1135/article/details/2304465
                         基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
                 知晓JVM系列(三) :常用的JVM监测工具
          5.jvmstat  jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。
                             工具路径:http://www.oracle.com/technetwork/java/jvmstat-142257.html下载相应的版本安装即可。
                             运行模式:具体安装与使用详情请参照:http://looyo.iteye.com/blog/1871207
                             基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                             特殊功能:
                               1、GC监控。
 jvmstat的界面如下:
 知晓JVM系列(三) :常用的JVM监测工具

      Spring Insight
二、基于命令行监测工具
              1.jmap 观察运行中的jvm物理内存的占用情况。
                             工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jmap [ option ] pid

                                               jmap [ option ] executable core

                                                      jmap [ option ] [[email protected]]remote-hostname-or-IP

                                      常用命令:jmap -histo  1234(查看class的实例数目,内存占用,类全名信息) 
                                                      jmap -heap 1234 (查看对内存情况)
                                                      jmap -dump 1234 (将内存使用的详细情况输出到文件
                                                      注:1234为需要被打印配相信息的java进程id,使用该分析工具时,jvm会处于假死状态。
                             基础功能:
                               1、内存分析、类情况查看。

              2.jps 列出所有的jvm实例
                           工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jps [options] [hostid]
                                                       注:如果不指定hostid就默认为当前主机或服务器。
                                      常用命令:jps-q(查看pid) 
                                                      jps -m (查看传递给main 方法的参数
                                                      jps -l  (查看main类或Jar的全限名
                                                      jps   -v (查看传入JVM的参数
                                                  
                             基础功能:
                               1、主要用来输出JVM中运行的进程状态信息
              3.jvmtop: 一个轻量级的控制台程序用来监控机器上运行的所有 Java 虚拟机。
                                 运行平台:linux
                                下载地址:http://code.google.com/p/jvmtop/
                                安装命令:wget http://jvmtop.googlecode.com/files/jvmtop-0.5.0.tar.gz
                                                         tar -zxvf jvmtop-0.5.0.tar.gz
                                 运行命令:./jvmtop.sh
                                    常用命令:./jvmtop.sh 3456(查看3456进程) 
              4.jstack 观察jvm中当前所有线程的运行情况和线程当前状态
                                     工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式: jstack [option] pid
                                                      jstack [option] executable core
                                                      jstack [option] [[email protected]]remote-hostname-or-ip
                                      常用命令:jps-q(查看pid) 
                                                      jstack -m pid(查看javanative c/c++框架的所有栈信息
                                                      jstack -l  pid(查看关于锁的附加信息
                                                      jstack  -F pid(’jstack [-l] pid’没有相应的时候强制打印栈信息)        
                             基础功能:
                               1、主要用来查看某个Java进程内的线程堆栈信息
                 
              5.jstat:JVM统计监测工具
                            工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]  
                                      常用命令:jstat -gc 21711 250 4 
                                                    注:vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时 
                                                          间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为
                                                          250ms,采样数为4      
                             基础功能:
                               1、 观察classloader,compiler,gc相关信息
               6.hprof:能够展现CPU使用率,统计堆内存使用情况
三、基于java API的方式监控
                 各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于JVM Management API开发的。
                  API:java.lang.management
                   常用api说明:
                    1.HotSpotDiagnostic:非标准的监控JMX
                    2.ClassLoading:加载的类的总体信息
                    3..Compilation:提供JVM的JIT(Just In Time)编译器(将bytecode编译成native code)的信息
                    4.GarbageCollector:垃圾回收器信息
                    5.MemoryPool:通过该MBean可以了解JVM各内存块的信息
                    6.OperatingSystem:通过该MBean我们可以了解到JVM所运行在的操作系统上的一些相关信息
                    7.Runtime:通过该MBean获取获取到JVM一些相关的信息,通过java.lang.management.RuntimeMXBean可以了解其主要提供的功能。
                  具体情况请查看:http://www.jmatrix.org/jvm/158.html
                                            http://blog.csdn.net/sixianfeng/article/details/5552228
                   两篇博文,讲得很详细。
          参考文章:
                          http://developer.51cto.com/art/201203/326355.htm
                          http://blog.csdn.net/djy1135/article/details/2304465
                          http://josh-persistence.iteye.com/blog/2161848
                          http://hillside.iteye.com/blog/706129

                          http://blog.csdn.net/feihong247/article/details/7874063
                          http://blog.chinaunix.net/uid-405749-id-3741305.html


                         


文章标签: jvm虚拟机性能jdk内存

知晓JVM系列(三) :常用的JVM监测工具

  JVM监测工具主要有下几种功能:
          1.jvm内部情况分析与了解。
                 对jvm参数、CPU、内存、堆等信息的查看和了解。
          2.性能调优。
                 调整软硬件融合度。
          3.应用运行时问题解决。
                如:
                         OutOfMemoryError,内存不足
                         内存泄露
                         线程死锁
                         锁争用(Lock Contention)
                         Java进程消耗CPU过高

一、可视化监测工具

      1.jvisualvm,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以进行程序应用快照。
                               2 、可以安装其他监测辅助插件。
                               3、性能分析,数据抽样。
jvisualvm界面如下:
知晓JVM系列(三) :常用的JVM监测工具
       2.jconsole,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
                               2、可以查看MBean信息。
jconsole的界面如下:
知晓JVM系列(三) :常用的JVM监测工具
         3.YourKit Java Profiler:是业界领先的Java剖析工具。
                  工具路径:http://www.warezaccess.com/search/yourkit.html 下载相应的版本安装即可。
                                安装方法可以参考以下两篇文章:
                                                       本机windows远程连接到linux服务器上监控java虚拟机的性能 : http://zhwj184.iteye.com/blog/764575
                                                       本机tomcat安装yourkit插件 : http://developer.51cto.com/art/201203/326454.htm
                                                       安装yourkit到IDE
                                运行模式:双击运行
                                基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以看各函数cpu资源消耗比例
                               3、可以监测CPU、内存、类、线程等运行信息。
                         特殊功能:
                               1、GC查看。
                               2.请求的执行路径查看。
yourkit软件界面如下:
        知晓JVM系列(三) :常用的JVM监测工具
       4.JProbe:一个企业级的Java剖析器。
                    工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                         基础功能:
                               1、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、覆盖分析
                               2、自动性能分析和度量报告
 jprobe软件界面如下:
       知晓JVM系列(三) :常用的JVM监测工具
    4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
                        工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                                         具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
                                                                           http://blog.csdn.net/djy1135/article/details/2304465
                         基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
                 知晓JVM系列(三) :常用的JVM监测工具
          5.jvmstat  jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。
                             工具路径:http://www.oracle.com/technetwork/java/jvmstat-142257.html下载相应的版本安装即可。
                             运行模式:具体安装与使用详情请参照:http://looyo.iteye.com/blog/1871207
                             基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                             特殊功能:
                               1、GC监控。
 jvmstat的界面如下:
 知晓JVM系列(三) :常用的JVM监测工具

      Spring Insight
二、基于命令行监测工具
              1.jmap 观察运行中的jvm物理内存的占用情况。
                             工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jmap [ option ] pid

                                               jmap [ option ] executable core

                                                      jmap [ option ] [[email protected]]remote-hostname-or-IP

                                      常用命令:jmap -histo  1234(查看class的实例数目,内存占用,类全名信息) 
                                                      jmap -heap 1234 (查看对内存情况)
                                                      jmap -dump 1234 (将内存使用的详细情况输出到文件
                                                      注:1234为需要被打印配相信息的java进程id,使用该分析工具时,jvm会处于假死状态。
                             基础功能:
                               1、内存分析、类情况查看。

              2.jps 列出所有的jvm实例
                           工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jps [options] [hostid]
                                                       注:如果不指定hostid就默认为当前主机或服务器。
                                      常用命令:jps-q(查看pid) 
                                                      jps -m (查看传递给main 方法的参数
                                                      jps -l  (查看main类或Jar的全限名
                                                      jps   -v (查看传入JVM的参数
                                                  
                             基础功能:
                               1、主要用来输出JVM中运行的进程状态信息
              3.jvmtop: 一个轻量级的控制台程序用来监控机器上运行的所有 Java 虚拟机。
                                 运行平台:linux
                                下载地址:http://code.google.com/p/jvmtop/
                                安装命令:wget http://jvmtop.googlecode.com/files/jvmtop-0.5.0.tar.gz
                                                         tar -zxvf jvmtop-0.5.0.tar.gz
                                 运行命令:./jvmtop.sh
                                    常用命令:./jvmtop.sh 3456(查看3456进程) 
              4.jstack 观察jvm中当前所有线程的运行情况和线程当前状态
                                     工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式: jstack [option] pid
                                                      jstack [option] executable core
                                                      jstack [option] [[email protected]]remote-hostname-or-ip
                                      常用命令:jps-q(查看pid) 
                                                      jstack -m pid(查看javanative c/c++框架的所有栈信息
                                                      jstack -l  pid(查看关于锁的附加信息
                                                      jstack  -F pid(’jstack [-l] pid’没有相应的时候强制打印栈信息)        
                             基础功能:
                               1、主要用来查看某个Java进程内的线程堆栈信息
                 
              5.jstat:JVM统计监测工具
                            工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]  
                                      常用命令:jstat -gc 21711 250 4 
                                                    注:vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时 
                                                          间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为
                                                          250ms,采样数为4      
                             基础功能:
                               1、 观察classloader,compiler,gc相关信息
               6.hprof:能够展现CPU使用率,统计堆内存使用情况
三、基于java API的方式监控
                 各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于JVM Management API开发的。
                  API:java.lang.management
                   常用api说明:
                    1.HotSpotDiagnostic:非标准的监控JMX
                    2.ClassLoading:加载的类的总体信息
                    3..Compilation:提供JVM的JIT(Just In Time)编译器(将bytecode编译成native code)的信息
                    4.GarbageCollector:垃圾回收器信息
                    5.MemoryPool:通过该MBean可以了解JVM各内存块的信息
                    6.OperatingSystem:通过该MBean我们可以了解到JVM所运行在的操作系统上的一些相关信息
                    7.Runtime:通过该MBean获取获取到JVM一些相关的信息,通过java.lang.management.RuntimeMXBean可以了解其主要提供的功能。
                  具体情况请查看:http://www.jmatrix.org/jvm/158.html
                                            http://blog.csdn.net/sixianfeng/article/details/5552228
                   两篇博文,讲得很详细。
          参考文章:
                          http://developer.51cto.com/art/201203/326355.htm
                          http://blog.csdn.net/djy1135/article/details/2304465
                          http://josh-persistence.iteye.com/blog/2161848
                          http://hillside.iteye.com/blog/706129

                          http://blog.csdn.net/feihong247/article/details/7874063
                          http://blog.chinaunix.net/uid-405749-id-3741305.html


                         


文章标签: jvm虚拟机性能jdk内存

  JVM监测工具主要有下几种功能:
          1.jvm内部情况分析与了解。
                 对jvm参数、CPU、内存、堆等信息的查看和了解。
          2.性能调优。
                 调整软硬件融合度。
          3.应用运行时问题解决。
                如:
                         OutOfMemoryError,内存不足
                         内存泄露
                         线程死锁
                         锁争用(Lock Contention)
                         Java进程消耗CPU过高

一、可视化监测工具

      1.jvisualvm,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以进行程序应用快照。
                               2 、可以安装其他监测辅助插件。
                               3、性能分析,数据抽样。
jvisualvm界面如下:
知晓JVM系列(三) :常用的JVM监测工具
       2.jconsole,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
                               2、可以查看MBean信息。
jconsole的界面如下:
知晓JVM系列(三) :常用的JVM监测工具
         3.YourKit Java Profiler:是业界领先的Java剖析工具。
                  工具路径:http://www.warezaccess.com/search/yourkit.html 下载相应的版本安装即可。
                                安装方法可以参考以下两篇文章:
                                                       本机windows远程连接到linux服务器上监控java虚拟机的性能 : http://zhwj184.iteye.com/blog/764575
                                                       本机tomcat安装yourkit插件 : http://developer.51cto.com/art/201203/326454.htm
                                                       安装yourkit到IDE
                                运行模式:双击运行
                                基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以看各函数cpu资源消耗比例
                               3、可以监测CPU、内存、类、线程等运行信息。
                         特殊功能:
                               1、GC查看。
                               2.请求的执行路径查看。
yourkit软件界面如下:
        知晓JVM系列(三) :常用的JVM监测工具
       4.JProbe:一个企业级的Java剖析器。
                    工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                         基础功能:
                               1、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、覆盖分析
                               2、自动性能分析和度量报告
 jprobe软件界面如下:
       知晓JVM系列(三) :常用的JVM监测工具
    4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
                        工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                                         具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
                                                                           http://blog.csdn.net/djy1135/article/details/2304465
                         基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
                 知晓JVM系列(三) :常用的JVM监测工具
          5.jvmstat  jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。
                             工具路径:http://www.oracle.com/technetwork/java/jvmstat-142257.html下载相应的版本安装即可。
                             运行模式:具体安装与使用详情请参照:http://looyo.iteye.com/blog/1871207
                             基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                             特殊功能:
                               1、GC监控。
 jvmstat的界面如下:
 知晓JVM系列(三) :常用的JVM监测工具

      Spring Insight
二、基于命令行监测工具
              1.jmap 观察运行中的jvm物理内存的占用情况。
                             工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jmap [ option ] pid

                                               jmap [ option ] executable core

                                                      jmap [ option ] [[email protected]]remote-hostname-or-IP

                                      常用命令:jmap -histo  1234(查看class的实例数目,内存占用,类全名信息) 
                                                      jmap -heap 1234 (查看对内存情况)
                                                      jmap -dump 1234 (将内存使用的详细情况输出到文件
                                                      注:1234为需要被打印配相信息的java进程id,使用该分析工具时,jvm会处于假死状态。
                             基础功能:
                               1、内存分析、类情况查看。

              2.jps 列出所有的jvm实例
                           工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jps [options] [hostid]
                                                       注:如果不指定hostid就默认为当前主机或服务器。
                                      常用命令:jps-q(查看pid) 
                                                      jps -m (查看传递给main 方法的参数
                                                      jps -l  (查看main类或Jar的全限名
                                                      jps   -v (查看传入JVM的参数
                                                  
                             基础功能:
                               1、主要用来输出JVM中运行的进程状态信息
              3.jvmtop: 一个轻量级的控制台程序用来监控机器上运行的所有 Java 虚拟机。
                                 运行平台:linux
                                下载地址:http://code.google.com/p/jvmtop/
                                安装命令:wget http://jvmtop.googlecode.com/files/jvmtop-0.5.0.tar.gz
                                                         tar -zxvf jvmtop-0.5.0.tar.gz
                                 运行命令:./jvmtop.sh
                                    常用命令:./jvmtop.sh 3456(查看3456进程) 
              4.jstack 观察jvm中当前所有线程的运行情况和线程当前状态
                                     工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式: jstack [option] pid
                                                      jstack [option] executable core
                                                      jstack [option] [[email protected]]remote-hostname-or-ip
                                      常用命令:jps-q(查看pid) 
                                                      jstack -m pid(查看javanative c/c++框架的所有栈信息
                                                      jstack -l  pid(查看关于锁的附加信息
                                                      jstack  -F pid(’jstack [-l] pid’没有相应的时候强制打印栈信息)        
                             基础功能:
                               1、主要用来查看某个Java进程内的线程堆栈信息
                 
              5.jstat:JVM统计监测工具
                            工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]  
                                      常用命令:jstat -gc 21711 250 4 
                                                    注:vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时 
                                                          间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为
                                                          250ms,采样数为4      
                             基础功能:
                               1、 观察classloader,compiler,gc相关信息
               6.hprof:能够展现CPU使用率,统计堆内存使用情况
三、基于java API的方式监控
                 各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于JVM Management API开发的。
                  API:java.lang.management
                   常用api说明:
                    1.HotSpotDiagnostic:非标准的监控JMX
                    2.ClassLoading:加载的类的总体信息
                    3..Compilation:提供JVM的JIT(Just In Time)编译器(将bytecode编译成native code)的信息
                    4.GarbageCollector:垃圾回收器信息
                    5.MemoryPool:通过该MBean可以了解JVM各内存块的信息
                    6.OperatingSystem:通过该MBean我们可以了解到JVM所运行在的操作系统上的一些相关信息
                    7.Runtime:通过该MBean获取获取到JVM一些相关的信息,通过java.lang.management.RuntimeMXBean可以了解其主要提供的功能。
                  具体情况请查看:http://www.jmatrix.org/jvm/158.html
                                            http://blog.csdn.net/sixianfeng/article/details/5552228
                   两篇博文,讲得很详细。
          参考文章:
                          http://developer.51cto.com/art/201203/326355.htm
                          http://blog.csdn.net/djy1135/article/details/2304465
                          http://josh-persistence.iteye.com/blog/2161848
                          http://hillside.iteye.com/blog/706129

                          http://blog.csdn.net/feihong247/article/details/7874063
                          http://blog.chinaunix.net/uid-405749-id-3741305.html


                         


  JVM监测工具主要有下几种功能:
          1.jvm内部情况分析与了解。
                 对jvm参数、CPU、内存、堆等信息的查看和了解。
          2.性能调优。
                 调整软硬件融合度。
          3.应用运行时问题解决。
                如:
                         OutOfMemoryError,内存不足
                         内存泄露
                         线程死锁
                         锁争用(Lock Contention)
                         Java进程消耗CPU过高

一、可视化监测工具

      1.jvisualvm,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以进行程序应用快照。
                               2 、可以安装其他监测辅助插件。
                               3、性能分析,数据抽样。
jvisualvm界面如下:
知晓JVM系列(三) :常用的JVM监测工具
       2.jconsole,是jdk自带的jvm性能监测工具。
                         工具路径:jdk1.7.0_03\bin
                         运行模式:双击运行
                         基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以参考jvm虚拟机参数与系统参数
                               3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
                         特殊功能:
                               1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
                               2、可以查看MBean信息。
jconsole的界面如下:
知晓JVM系列(三) :常用的JVM监测工具
         3.YourKit Java Profiler:是业界领先的Java剖析工具。
                  工具路径:http://www.warezaccess.com/search/yourkit.html 下载相应的版本安装即可。
                                安装方法可以参考以下两篇文章:
                                                       本机windows远程连接到linux服务器上监控java虚拟机的性能 : http://zhwj184.iteye.com/blog/764575
                                                       本机tomcat安装yourkit插件 : http://developer.51cto.com/art/201203/326454.htm
                                                       安装yourkit到IDE
                                运行模式:双击运行
                                基础功能:
                               1、可以通过本地/远程管理、监控jvm虚拟机
                               2、可以看各函数cpu资源消耗比例
                               3、可以监测CPU、内存、类、线程等运行信息。
                         特殊功能:
                               1、GC查看。
                               2.请求的执行路径查看。
yourkit软件界面如下:
        知晓JVM系列(三) :常用的JVM监测工具
       4.JProbe:一个企业级的Java剖析器。
                    工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                         基础功能:
                               1、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、覆盖分析
                               2、自动性能分析和度量报告
 jprobe软件界面如下:
       知晓JVM系列(三) :常用的JVM监测工具
    4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
                        工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
                         运行模式:双击运行
                                         有Eclipse插件
                                         具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
                                                                           http://blog.csdn.net/djy1135/article/details/2304465
                         基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                         特殊功能:
                               1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
                 知晓JVM系列(三) :常用的JVM监测工具
          5.jvmstat  jvmstat是图形版的jstat,由Java 官方提供,目前最新版本为3.0。
                             工具路径:http://www.oracle.com/technetwork/java/jvmstat-142257.html下载相应的版本安装即可。
                             运行模式:具体安装与使用详情请参照:http://looyo.iteye.com/blog/1871207
                             基础功能:
                               1、cpu分析、内存分析、性能分析、
                               2、可以监测CPU、堆、内存、类、线程等运行信息。
                             特殊功能:
                               1、GC监控。
 jvmstat的界面如下:
 知晓JVM系列(三) :常用的JVM监测工具

      Spring Insight
二、基于命令行监测工具
              1.jmap 观察运行中的jvm物理内存的占用情况。
                             工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jmap [ option ] pid

                                               jmap [ option ] executable core

                                                      jmap [ option ] [[email protected]]remote-hostname-or-IP

                                      常用命令:jmap -histo  1234(查看class的实例数目,内存占用,类全名信息) 
                                                      jmap -heap 1234 (查看对内存情况)
                                                      jmap -dump 1234 (将内存使用的详细情况输出到文件
                                                      注:1234为需要被打印配相信息的java进程id,使用该分析工具时,jvm会处于假死状态。
                             基础功能:
                               1、内存分析、类情况查看。

              2.jps 列出所有的jvm实例
                           工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jps [options] [hostid]
                                                       注:如果不指定hostid就默认为当前主机或服务器。
                                      常用命令:jps-q(查看pid) 
                                                      jps -m (查看传递给main 方法的参数
                                                      jps -l  (查看main类或Jar的全限名
                                                      jps   -v (查看传入JVM的参数
                                                  
                             基础功能:
                               1、主要用来输出JVM中运行的进程状态信息
              3.jvmtop: 一个轻量级的控制台程序用来监控机器上运行的所有 Java 虚拟机。
                                 运行平台:linux
                                下载地址:http://code.google.com/p/jvmtop/
                                安装命令:wget http://jvmtop.googlecode.com/files/jvmtop-0.5.0.tar.gz
                                                         tar -zxvf jvmtop-0.5.0.tar.gz
                                 运行命令:./jvmtop.sh
                                    常用命令:./jvmtop.sh 3456(查看3456进程) 
              4.jstack 观察jvm中当前所有线程的运行情况和线程当前状态
                                     工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式: jstack [option] pid
                                                      jstack [option] executable core
                                                      jstack [option] [[email protected]]remote-hostname-or-ip
                                      常用命令:jps-q(查看pid) 
                                                      jstack -m pid(查看javanative c/c++框架的所有栈信息
                                                      jstack -l  pid(查看关于锁的附加信息
                                                      jstack  -F pid(’jstack [-l] pid’没有相应的时候强制打印栈信息)        
                             基础功能:
                               1、主要用来查看某个Java进程内的线程堆栈信息
                 
              5.jstat:JVM统计监测工具
                            工具路径:jdk1.7.0_03\bin
                             运行模式:命令行
                             命令格式:jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]  
                                      常用命令:jstat -gc 21711 250 4 
                                                    注:vmid是Java虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时 
                                                          间间隔。count是采样数目。比如下面输出的是GC信息,采样时间间隔为
                                                          250ms,采样数为4      
                             基础功能:
                               1、 观察classloader,compiler,gc相关信息
               6.hprof:能够展现CPU使用率,统计堆内存使用情况
三、基于java API的方式监控
                 各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于JVM Management API开发的。
                  API:java.lang.management
                   常用api说明:
                    1.HotSpotDiagnostic:非标准的监控JMX
                    2.ClassLoading:加载的类的总体信息
                    3..Compilation:提供JVM的JIT(Just In Time)编译器(将bytecode编译成native code)的信息
                    4.GarbageCollector:垃圾回收器信息
                    5.MemoryPool:通过该MBean可以了解JVM各内存块的信息
                    6.OperatingSystem:通过该MBean我们可以了解到JVM所运行在的操作系统上的一些相关信息
                    7.Runtime:通过该MBean获取获取到JVM一些相关的信息,通过java.lang.management.RuntimeMXBean可以了解其主要提供的功能。
                  具体情况请查看:http://www.jmatrix.org/jvm/158.html
                                            http://blog.csdn.net/sixianfeng/article/details/5552228
                   两篇博文,讲得很详细。
          参考文章:
                          http://developer.51cto.com/art/201203/326355.htm
                          http://blog.csdn.net/djy1135/article/details/2304465
                          http://josh-persistence.iteye.com/blog/2161848
                          http://hillside.iteye.com/blog/706129

                          http://blog.csdn.net/feihong247/article/details/7874063
                          http://blog.chinaunix.net/uid-405749-id-3741305.html