JDK自带VM分析工具jps,jstat,jmap,jconsole
来源:互联网 发布:汇通网财经日历 数据 编辑:程序博客网 时间:2024/05/17 04:24
一、概述
SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装) 。
我一共找到以下四个工具:重点看看jconsole和jmap。
- jps
- :与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
- jstat
- :一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
- jmap
- :打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
- jconsole
- :一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。
二、 使用介绍:
1、jps:我想很多人都是用过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 -gcutil pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。
查看GC时,各列对应关系: S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
jstat -gcutil PID interval count
S0 — Heap上的 Survivor space 0 区已使用空间的百分比
S1 — Heap上的 Survivor space 1 区已使用空间的百分比
E — Heap上的 Eden space 区已使用空间的百分比
O — Heap上的 Old space 区已使用空间的百分比
P — Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
jstat 用法http://eecn.blog.sohu.com/177061930.html
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
- jdk自带vm分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- 自带VM分析工具jps,jstat,jmap,jconsole
- 转 JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps|jstat|jmap|jconsole使用
- JDK自带监控工具 jps、jinfo、jstat、jmap、jconsole
- JAVA 自带测试vm工具TOOLS——jps、jinfo、jstat、jmap、jconsole
- JAVA 自带测试vm工具TOOLS——jps、jinfo、jstat、jmap、jconsole
- jdk中自带 jstat,jconsole,jps,jmap,jhat使用
- springMVC3学习(4)--注解式控制器
- 位运算应用
- 数据和C(2)
- NoSQL学习笔记(二)之CAP理论
- 【高级特性】String,StringBuffer,StringBuilder
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- WebView
- docker安装(二)
- 博弈入门(由于属于不同的博客网无法转载还望见谅)
- 有代表性的并发服务器端模型
- tensorflow学习笔记(二十七):leaky relu
- [hash]Hashcat Example
- 剑指offer-----输出二叉树的后继节点(java版)
- linux下ftp工具