JDK命令行工具

Sun公司作为”礼物“赠送给JDK使用者的工具:

这些命令行工具大多是jdk/lib/tools.jar类库的一层薄包装,主要功能代码是在tools类库(不属于java的标准API)中实现的。

Sun JDK监控与故障处理命令行工具

1、jps:虚拟机进程状况工具

可以列出正在运行的虚拟机进程,显示虚拟机执行主类名称,以及这些进程的本地虚拟机的唯一ID(LVMID,对于本地虚拟机进程来说LVMID与操作系统的进程PID是一致的)。

命令格式: jps  [ options ] [ hostid ]

主要选项:

2、jstat:虚拟机统计信息监视工具

监视虚拟机各种运行状态信息,显示虚拟机进程的类装载、内存、垃圾收集、JIT编译等运行数据。

命令格式: jstat  [ options  vimd [interval [s|ms] [count] ] ]

远程虚拟机进程vimd格式:[protocol:][//]vimid[@hostname[:port]/servername]

主要选项:

例子:

jstat -gc 2764 250 20    --每250ms查询一次进程2764垃圾收集的状况,一共查询20次

jstat  -gcutil 2764   --查看进程2764堆内存占用情况

  • 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 — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

3、jinfo:实时查看和调整虚拟机的各项参数

命令格式: jinfo [ options ] pid

主要选项: -flag name    查看参数值

-flag name=value   修改参数值

例子:

jinfo -flag  CMSRevisitStackSize  2764  --查看CMSRevisitStackSize 参数值

查看参数值的其他方法:

java -XX:+PrintFlagsFinal

4、jmap:java内存映像工具

主要用于生成堆转储快照(一般称为heapdump或dump文件),还可以查询finalize执行队列、java堆和永久代的详细信息、当前使用哪种收集器等。

命令格式: jinfo [ options ] vmid

主要选项:

例子:

5、jhat:虚拟机堆转储快照分析工具

与jmap搭配使用,来分析jmap生成的堆转储快照文件,jhat内置有微型的http服务器,分析结果通过浏览器查看。

例子:

显示Server is ready后在浏览器中查看:http://serverip:7000:

导出后的映像文件用jhat进行分析时,-J参数是向java虚拟机传一个参数,如-mx768m是指定虚拟机可用最大的内存为768M。如果映像文件很大,你要指定一个很大的值,否则在分析过程中就会有OutOfMemeryError的错误。如:

对于jhat启动后显示的html页面中功能:
(1)显示出堆中所包含的所有的类
         

(2)从根集能引用到的对象
          

(3)显示平台包括的所有类的实例数量
          

(4)堆实例的分布表
           

(5)执行对象查询语句 

更多关于对象查询语言的信息,见这篇文章:http://blog.csdn.net/gtuu0123/archive/2010/11/27/6039592.aspx

6、jstack:java堆栈跟踪工具

用于生成虚拟机当前时刻的线程快照(一般称为threaddump或javacore文件),线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。

命令格式: jstack [ options ] vmid

主要选项:

例子:

资料:

JDK实用工具集:http://docs.oracle.com/javase/6/docs/technotes/tools/index.html
关于Java性能监控您不知道的5件事,第1部分:http://www.ibm.com/developerworks/cn/java/j-5things7.html
关于Java性能监控您不知道的5件事,第2部分:http://www.ibm.com/developerworks/cn/java/j-5things8.html
从转储(Dump)文件中调试并除错:http://www.ibm.com/developerworks/cn/java/j-memoryanalyzer/

JVM性能监控与故障处理命令行工具的更多相关文章

  1. JVM性能监控与故障处理命令汇总(jps、jstat、jinfo、jmap、jhat、jstack)

    给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具才是运用知识处理数据的手段 使用适当的虚拟机监控和分析的工具可以加快我们分析数据.定位解决问题的速度,本文主要介绍了几款服 务器上常用的 ...

  2. jvm性能监控与故障处理工具

    jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...

  3. 第八章 JVM性能监控与故障处理工具(2)

    注意:该篇博客主要记录自<深入理解java虚拟机(第二版)> 说明:关于命令行的JVM性能监控与故障处理工具见<第七章 JVM性能监控与故障处理工具(1)> 1.图像化的故障处 ...

  4. 监控Linux性能的18个命令行工具

    监控 Linux 性能的 18 个命令行工具 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保 ...

  5. Linux下的java虚拟机性能监控与故障处理命令

    java包中提供了很多监控JVM的工具类,作为java程序员必须得掌握常用的几个工具,下面是几个常用的JVM性能监控与故障处理工具的介绍与使用. 1.jstack 该命令用于生成当前时刻虚拟机的线程快 ...

  6. 监控 Linux 性能的 18 个命令行工具

    http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance 1.Top-Linux进程监控 Lin ...

  7. [转载]监控 Linux 性能的 18 个命令行工具

    转自:http://www.kuqin.com/shuoit/20140219/338066.html 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一 ...

  8. 监控 Linux 性能的 18 个命令行工具[转]

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我们 ...

  9. 监控 Linux 性能的 18 个命令行工具(转)

    http://www.oschina.net/translate/command-line-tools-to-monitor-linux-performance?cmp&p=1# 1.Top- ...

随机推荐

  1. 关于在C#中构造函数中调用虚函数的问题

    在C#中如果存在类的继承关系,应避免在构造函数中调用虚函数.这是由于C#的运行机制造成的,原因如下: 新建一个类实例时,C#会先初始化该类(对类变量赋值,并将函数记在函数表中),然后再初始化父类.构造 ...

  2. 【原】iOS学习41之多线程

    1. 多线程概述 1> 程序.进程和进程的概念 程序:由源代码生成的可执行应用.(例如:QQ.app) 进程:一个正在运行的程序可以看做一个进程.(例如:正在运行的QQ就是一个进程),进程拥有独 ...

  3. BZOJ4624 : 农场种植

    设$A[i][j]=[a[i][j]=G],B[i][j]=[b[i][j]=L]$,枚举右下角,则对应$(A-B)^2$的和就是匹配成功的格子数. $(a-b)^2=a^2+b^2-2ab$,将矩阵 ...

  4. Unity正式发布首个“实验性”VR编辑器,支持HTC Vive和Oculus Rift

    Unity今天正式推出"实验性"VR编辑器.据悉,EditorVR是Unity游戏引擎中的一个组件,可让开发者在虚拟现实环境中开发游戏.为何要称之为"实验性"? ...

  5. canvas基础之旅

    canvas 主要使用2D rendering context  API 实现其功能和特效. canvas 一般浏览器都支持,但在ie9之前的是不支持的.(解决办法:添加IxplorerCanvas ...

  6. 【BZOJ3732】 Network Kruskal+倍增lca

    Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_ ...

  7. 服务器端接受Json数据的绑定实现

    1.在方法参数前加上JsonRead<T>的泛型特性 public ActionResult GetData([JsonRead(typeof(PostData))]PostData po ...

  8. HDU 5876 关于补图的bfs

    1.HDU 5876  Sparse Graph 2.总结:好题,把STL都过了一遍 题意:n个点组成的完全图,删去m条边,求点s到其余n-1个点的最短距离. 思路:把点分为两个集合,A为所有没有到达 ...

  9. 自己签发免费ssl证书

    自己制作ssl证书:自己签发免费ssl证书,为nginx生成自签名ssl证书 这里说下Linux 系统怎么通过openssl命令生成 证书. 首先执行如下命令生成一个keyopenssl genrsa ...

  10. JDBC学习笔记2

    数据库数据更新操作statement接口下操作:[代码] import java.sql.DriverManager;import java.sql.SQLException; public clas ...