`
yinwufeng
  • 浏览: 277676 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Sun JVM分析工具

阅读更多

Sun JVM分析工具jps,jstat,jmap,jconsole,MemoryAnalyzer

一、概述  

    SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。

jps  
:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。    
  
jstat  
:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。    
  
jmap  
:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。    

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

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

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

jmap 产生heapdump,用MemoryAnalyzer分析
:打印出某个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'',就可以了。当然还有其他很好的选项。
分享到:
评论

相关推荐

    sun threaddump analyzer

    sun jvm格式threaddump 分析工具。

    IBMThreadDumpAnalyzer.zip

    IBM出品,至少支持IBM JVM 和 SUN JVM,java线程堆栈分析工具。

    GC分析工具盒GC策略介绍

    介绍Sun HotSpot和JRockit JVM堆内存输出和分析工具,经典GC策略原理等。

    垃圾猫:解析Java垃圾收集日志并分析收集器,触发器,JVM版本,JVM选项和OS信息,并报告errorwarninfo级别的分析和建议,以支持针对OpenJDK和SunOracle JDK的JVM调整和故障排除

    一个命令行工具,用于解析Java垃圾收集日志并进行分析,以支持针对OpenJDK和Sun / Oracle JDK的JVM调整和故障排除。 它与其他工具的不同之处在于,它超出了计算统计信息(例如最大暂停时间和吞吐量)的简单数学范围...

    JavaFlightRecorderMissionControl一个高效的性能分析工具

    朱光宇(效山)阿里巴巴系统软件部技术专家,长期致力于JVM、操作系统等基础软件的研发...曾经参与过Sun Hotspot JVM(micro edition) 、Android on x86、YunOS的研发和优化,目前从事Cloud环境下AJDK性能分析工具的研发。

    was内存溢出分析工具jca401

    On some platforms, and in some cases, Java... Although Javacore or Javadump is present in Sun Solaris JVMs, much of the content of the Javacore is IBM value-add; that is, it is present only in IBM JVMs.

    Java问题定位技术.pdf

    本书介绍的定位技术主要有:内存泄漏定位,线程堆栈分析等。内存定位套路比较固定, ... 每一种Java虚 拟机(SUN JVM、 IBM JVM、 JRokit、 GNU JVM等等)都提供了线程转储(thread dump)的后门。有需要的朋友可以下载看看

    javacc源代码

    JavaCC JavaCompilerCompiler 是一个用JAVA开发的最受欢迎的语法分析生成器 这个分析生成器工具可以读取上下文无关且有着特殊意义的语法并把它转换成可以识别且匹配该语法的JAVA程序 JavaCC可以在Java虚拟机 JVM V1 ...

    常规Java工具,算法,加密,数据库,面试题,源代码分析,解决方案.zip

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,到处运行(Write Once, Run Anywhere)”,这意味着开发者可以使用Java编写应用程序,并在支持...

    Java虚拟机

    4.2.5 jhat:虚拟机堆转储快照分析工具 4.2.6 jstack:Java堆栈跟踪工具 4.2.7 HSDIS:JIT生成代码反汇编 4.3 JDK的可视化工具 4.3.1 JConsole:Java监视与管理控制台 4.3.2 VisualVM:多合一故障处理工具 4.4...

    garbagecat:http

    一个命令行工具,用于解析Java垃圾收集日志并进行分析,以支持针对OpenJDK和Sun / Oracle JDK的JVM调整和故障排除。 它与其他工具的不同之处在于,它超出了计算统计信息(例如最大暂停时间和吞吐量)的简单数学范围...

    【JavaCommunity-后端技术栈,应有尽有】面试分享、源码分析.zip

    (Java,spring,springboot,springcloud系列) 微服务(各大平台的微服务架构分享) 算法题(算法分析,以及leetcode代码实现)等等 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月...

    Java算法题,数据结构分析和实现.zip

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,到处运行(Write Once, Run Anywhere)”,这意味着开发者可以使用Java编写应用程序,并在支持...

    数据结构与算法分析 Java语言描述 习题解答.zip

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,到处运行(Write Once, Run Anywhere)”,这意味着开发者可以使用Java编写应用程序,并在支持...

    《数据结构与算法分析(Java语言描述版本)》中介绍的算法与数据结构.zip

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,到处运行(Write Once, Run Anywhere)”,这意味着开发者可以使用Java编写应用程序,并在支持...

    Jive资料集

    4 WebLogic中文问题配置文件 5 JSP系统信息配置探针 <br> 反编译与混淆 1 編譯、反編譯、反反編譯 <br> 反编译 1 反编译常用工具 <br> 混淆 1 Sun公司的混淆器JADE ...

    javaee登陆页面源码-trade:https://github.com/sun0x00/RedTorch.git

    得益于JVM的良好设计,框架具备较好的扩展性和尚可接受的延迟,曾考虑使用C++,但因工作量太大只能作罢,且已有大量此类开源工具。。 重要提示 项目尚处于预览阶段,因此使用前请务必严格测试。 欢迎Star本项目,...

    汪文君高并发编程实战视频资源全集

     高并发编程第三阶段21讲 Exchanger工具的使用以及常见问题分析-上_.mp4  高并发编程第三阶段22讲 Exchanger工具的使用以及常见问题分析-下_.mp4  高并发编程第三阶段23讲 Semaphore工具的介绍以及借助于...

    汪文君高并发编程实战视频资源下载.txt

     高并发编程第三阶段21讲 Exchanger工具的使用以及常见问题分析-上_.mp4  高并发编程第三阶段22讲 Exchanger工具的使用以及常见问题分析-下_.mp4  高并发编程第三阶段23讲 Semaphore工具的介绍以及借助于...

Global site tag (gtag.js) - Google Analytics