[转载]JDK自带VM分析工具jps,jstat,jmap,jconsole

一、概述  
    SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装)  。 
      
    我一共找到以下四个工具:重点看看jconsole和jmap。

jps
:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。   

jstat
:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。   

jmap
:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。   

jconsole
:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。  

二、 使用介绍:  
      
    1、jstat :我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。  
    使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。 
可惜没有linux下的ps好用,名称不好用。但是在第四个工具jconsole的界面里面会有具体JAR包的名称。 
      
    2、jstat :对VM内存使用量进行监控。  
    jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。  
    jstat -class pid:显示加载class的数量,及所占空间等信息。  
    jstat -compiler pid:显示VM实时编译的数量等信息。  
    jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。  
    jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。  
    jstat -gcnew pid:new对象的信息。  
    jstat -gcnewcapacity pid:new对象的信息及其占用量。  
    jstat -gcold pid:old对象的信息。  
    jstat -gcoldcapacity pid:old对象的信息及其占用量。  
    jstat -gcpermcapacity pid: perm对象的信息及其占用量。  
    jstat -util pid:统计gc信息统计。  
    jstat -printcompilation pid:当前VM执行的信息。  
    除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。  
      
   3、jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=f1 3024可以将3024进程的内存heap输出出来到f1文件里。  
      
    4、jconsole 是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。  
    使用方法:命令行里打 jconsole,选则进程就可以了。  
      
    友好提示:windows查看进程号,由于任务管理器默认的情况下是不显示进程id号的,所以可以通过如下方法加上。ctrl+alt+del打开任务管理器,选择‘进程’选项卡,点‘查看’->''选择列''->加上''PID'',就可以了。当然还有其他很好的选项。 

三、参考资料: 
    article:http://elf8848.iteye.com/blog/442806 

    jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html 

    jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html 

    jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html 

    jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html  

转载地址:http://jiajun.iteye.com/blog/443196,本博主对其中内容正确与否不负责任,请尊重原作者版权。

时间: 2024-08-02 21:13:02

[转载]JDK自带VM分析工具jps,jstat,jmap,jconsole的相关文章

jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现问题的时候在终端输入一些命令来解决.所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究这些命令的使用也让我们更能了解jvm构成和特性

[转载]goaccess-nginx日志分析工具简介

    [转载]:http://www.cnphp.info/goaccess-nginx-log-stat-tool-intro.html     作者: freemouse 日期 2011年11月1日 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://www.cnphp.info/goaccess-nginx-log-stat-tool-intro.html       提到web服务器就不得不说nginx.这款由俄罗斯人开发的小巧的web服务软件

Java程序内存分析:jdk自带的jmap能为我们带来什么

jmap 打印出某个java进程(使用pid)内存内的,所有'对象'的情况(如:产生那些对象,及其数量). 可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.使用方法 jmap -histo pid.如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象.jmap -dump:format=b,file=outfile 3024可以将3024进程的内存heap输出出来到out

亚马逊推带分析工具的云数据库,S3降价25%

在亚马逊第一次用户大会(被称为AWS re: Invent)上,亚马逊推出了其最新的云服务--Redshift,这是一个PB级规模的数据仓库,AWS发言人表示,与企业内部系统相比,Redshift可以帮助企业降低数据仓储成本达10倍. Redshift已经推出了有限的测试版,预计将于明年全面推出. Redshift直接瞄准企业内部数据仓储系统,尤其是来自Oracle.SQL Server和Green Plum的系统.Gartner大数据分析师Merv Adrian表示:"这对于传统数据仓储供应商

虚拟机常用的内存查看与分析工具

内存查看与分析工具,下面是日常监控可以使用的一些工具, 在调试时应用比较多的是堆栈信息,查看这篇文章: Java Thread Dump 性能分析 gc日志输出 在jvm启动参数中加入 1 2 3 4 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplicationStopedTime jvm将会按照这些参数顺序输出gc概要信息,详细信息,gc时间信息,gc造成的应用暂停时间. 如果在刚才的参数后面加入

盘点最实用56个大数据可视化分析工具

俗话说的好:工欲善其事,必先利其器!一款好的工具可以让你事半功倍,尤其是在大数据时代,更需要强有力的工具通过使数据有意义的方式实现数据可视化,还有数据的可交互性;我们还需要跨学科的团队,而不是单个数据科学家.设计师或数据分析员;我们更需要重新思考我们所知道的数据可视化,图表和图形还只能在一个或两个维度上传递信息, 那么他们怎样才能与其他维度融合到一起深入挖掘大数据呢?此时就需要倚仗大数据可视化(BDV)工具,因此,笔者收集了适合各个平台各种行业的多个图表和报表工具,这些工具中不乏有适用于NET.

性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(一)

[本文转载于性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(一)] 前言 在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着严重问题,可能是灾难性的.所以找出是什么原因造成OutOfMemoryError非常重要.现在向大家引荐Eclipse Memory Analyzer tool(MAT),来化解我们遇到的难题.如未说明,本文均使用Java 5.0 on Windows XP SP3环境.   为什么

jps,jstat,jinfo,jmap,jhat,jstack工具的使用/查看Linux磁盘信息

1.查看磁盘还剩多少空间,使用df命令(查看Linux版本:lsb_release -a,uname -a) 2.当前文件夹下的磁盘使用情况:(du --max-depth=1 -h后面没有显示跟路径,它默认是当前的路径.) 3.查看其中某一文件(文件夹)的大小:这里的大小是该文件夹下的大小的总和 4.查看指定目录下的文件大小 -------------------------------------------------------------------------------------

使用JDK自带jvisualvm监控tomcat

原文地址: http://my.oschina.net/kone/blog/157239 jdk自带有个jvisualvm工具.该工具是用来监控java运行程序的cpu.内存.线程等的使用情况.并且使用图表的方式监控java程序.还具有远程监控能力.不失为一个用来监控tomcat的好工具. 在jdk目录下的bin目录中可以找到jvisualvm.exe文件.直接启动可以看到如下界面: 以上是已经连接远程的界面.直观的监控界面.更有助于我们分析tomcat的运行情况. 下面主要介绍下怎么样使用本地