JVM监测工具主要有下几种功能:
1.jvm内部情况分析与了解。
对jvm参数、CPU、内存、堆等信息的查看和了解。
2.性能调优。
调整软硬件融合度。
3.应用运行时问题解决。
如:
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
一、可视化监测工具
1.jvisualvm,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以进行程序应用快照。
2 、可以安装其他监测辅助插件。
3、性能分析,数据抽样。
jvisualvm界面如下:
2.jconsole,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
2、可以查看MBean信息。
jconsole的界面如下:
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软件界面如下:
4.JProbe:一个企业级的Java剖析器。
工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
基础功能:
1、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、覆盖分析
2、自动性能分析和度量报告
jprobe软件界面如下:
4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
基础功能:
1、cpu分析、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
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的界面如下:
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、内存分析、类情况查看。
工具路径: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
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 corejstack [option] [[email protected]]remote-hostname-or-ip
常用命令:jps-q(查看pid)
jstack -m pid(查看java和native 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的方式监控
常用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可以了解其主要提供的功能。
两篇博文,讲得很详细。
参考文章:
知晓JVM系列(三) :常用的JVM监测工具
JVM监测工具主要有下几种功能:
1.jvm内部情况分析与了解。
对jvm参数、CPU、内存、堆等信息的查看和了解。
2.性能调优。
调整软硬件融合度。
3.应用运行时问题解决。
如:
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
一、可视化监测工具
1.jvisualvm,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以进行程序应用快照。
2 、可以安装其他监测辅助插件。
3、性能分析,数据抽样。
jvisualvm界面如下:
2.jconsole,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
2、可以查看MBean信息。
jconsole的界面如下:
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软件界面如下:
4.JProbe:一个企业级的Java剖析器。
工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
基础功能:
1、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、覆盖分析
2、自动性能分析和度量报告
jprobe软件界面如下:
4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
基础功能:
1、cpu分析、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
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的界面如下:
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、内存分析、类情况查看。
工具路径: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
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 corejstack [option] [[email protected]]remote-hostname-or-ip
常用命令:jps-q(查看pid)
jstack -m pid(查看java和native 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的方式监控
常用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可以了解其主要提供的功能。
两篇博文,讲得很详细。
参考文章:
JVM监测工具主要有下几种功能:
1.jvm内部情况分析与了解。
对jvm参数、CPU、内存、堆等信息的查看和了解。
2.性能调优。
调整软硬件融合度。
3.应用运行时问题解决。
如:
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
一、可视化监测工具
1.jvisualvm,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以进行程序应用快照。
2 、可以安装其他监测辅助插件。
3、性能分析,数据抽样。
jvisualvm界面如下:
2.jconsole,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
2、可以查看MBean信息。
jconsole的界面如下:
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软件界面如下:
4.JProbe:一个企业级的Java剖析器。
工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
基础功能:
1、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、覆盖分析
2、自动性能分析和度量报告
jprobe软件界面如下:
4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
基础功能:
1、cpu分析、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
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的界面如下:
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、内存分析、类情况查看。
工具路径: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
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 corejstack [option] [[email protected]]remote-hostname-or-ip
常用命令:jps-q(查看pid)
jstack -m pid(查看java和native 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的方式监控
常用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可以了解其主要提供的功能。
两篇博文,讲得很详细。
参考文章:
JVM监测工具主要有下几种功能:
1.jvm内部情况分析与了解。
对jvm参数、CPU、内存、堆等信息的查看和了解。
2.性能调优。
调整软硬件融合度。
3.应用运行时问题解决。
如:
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
一、可视化监测工具
1.jvisualvm,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以进行程序应用快照。
2 、可以安装其他监测辅助插件。
3、性能分析,数据抽样。
jvisualvm界面如下:
2.jconsole,是jdk自带的jvm性能监测工具。
工具路径:jdk1.7.0_03\bin
运行模式:双击运行
基础功能:
1、可以通过本地/远程管理、监控jvm虚拟机
2、可以参考jvm虚拟机参数与系统参数
3、可以监测CPU、堆、permGen、类、线程等运行信息,并可以对其操作。如:垃圾回收操作,线程信息查看,堆信息查看。
特殊功能:
1、可以查看堆和非堆内存占用情况,查看各代区内存信息。
2、可以查看MBean信息。
jconsole的界面如下:
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软件界面如下:
4.JProbe:一个企业级的Java剖析器。
工具路径:http://www.innovatedigital.com/download/JProbe_index.asp 下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
基础功能:
1、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、覆盖分析
2、自动性能分析和度量报告
jprobe软件界面如下:
4.jProfiler:JProfiler是一个商业授权的Java剖析工具。
工具路径:http://www.ej-technologies.com/products/jprofiler/overview.html下载相应的版本安装,然后**。
运行模式:双击运行
有Eclipse插件
具体安装与使用详情请参照:http://www.cnblogs.com/jayzee/p/3184087.html
基础功能:
1、cpu分析、内存分析、性能分析、
2、可以监测CPU、堆、内存、类、线程等运行信息。
特殊功能:
1、专用于分析J2SE和J2EE应用程序。
jprofiler的软件界面如下:
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的界面如下:
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、内存分析、类情况查看。
工具路径: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
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 corejstack [option] [[email protected]]remote-hostname-or-ip
常用命令:jps-q(查看pid)
jstack -m pid(查看java和native 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的方式监控
常用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可以了解其主要提供的功能。
两篇博文,讲得很详细。
参考文章: