在java/bin目录中除了java.exe和javac.exe之外,还有很多exe文件, 这些执行文件大多数是java\lib\tools.jar类库的一层薄包装而已,它们主要的功能代码是在tools类库中实现的。
Sun JDK 监控和故障处理工具
(1)jps:JVM process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
(2)jstat:JVM Statistics(统计) Monitoring(检测) Tool,用于收集HotSpot虚拟机各方面的运行数据
(3)jinfo:Configuration Info for Java,显示虚拟机配置信息
(4)jmap:Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件)
(5)jhat:JVM Heap Dump(仓库) Browser,用于分析headdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
(6)jstack:Stack Trace(跟踪) for Java,显示虚拟机的线程快照
1、 jps:虚拟机进程状况工具
它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。
C:\Users\skx>jps
7508 Jps //这个是变化的
4564 org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
C:\Users\skx>jps -q
1132
4564
C:\Users\skx>jps -m
8116 Jps -m
4564 org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -os win32 ..... ......
C:\Users\skx>jps -l
4564 D:\ZmyExe\eclipse-jee-luna-R-win32\eclipse\\plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
3940 sun.tools.jps.Jps
C:\Users\skx>jps -v
2100 Jps -Dapplication.home=D:\ZmyExe\java -Xms8m
4564 org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx512m -XX:MaxPermSize=256m
2、jstat:虚拟机统计信息监视工具
用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程(需要远程主机提供RMI支持,Sun提供了jstatd工具可以方便地建立远程RMI服务器)虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。
先查出jvm的线程jps 在使用jstat;
格式如:C:\Users\skx>jstat -class 4564
Loaded Bytes Unloaded Bytes Time
17788 21748.5 101 72.7 10.91
jstat命令格式为:
jstat option vmid [interval count]
使用gcutil:
C:\Users\skx>jstat -gcutil 4564
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 1.68 50.48 99.87 24 0.272 47 11.143 11.415
-
参数解释:
-
Options — 选项,上面列出的选项
-
vmid — VM的进程号,即当前运行的java进程号
-
interval– 间隔时间,单位为毫秒
-
count — 打印次数,如果缺省则打印无数次
-
S0 — Heap上的 Survivor space 0 区已使用空间的百分比
-
S1 — Heap上的 Survivor space 1 区已使用空间的百分比
-
E — Heap上的 Eden space 区已使用空间的百分比 (新生代)
-
O — Heap上的 Old space 区已使用空间的百分比
-
P — Perm space 区已使用空间的百分比 permanent
-
YGC — 从应用程序启动到采样时发生 Young GC 的次数
-
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
-
FGC — 从应用程序启动到采样时发生 Full GC 的次数
-
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
-
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
对于命令格式中的vmid与LVMID需要特别说明一下:如果是本地虚拟机进程,VMID和LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应该是:
[protoco:][//]lvmid[@hostname[:port]/servername]
参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次,假设需要每秒查询一次进程号4564垃圾收集的情况,一个查询10次,那命令应该是
C:\Users\skx>jstat -gc 4564 1000 10
3、 jinfo:Java配置信息工具
jinfo命令格式:
where <option> is one of: -flag <name> to print the value of the named VM flag -flag [+|-]<name> to enable or disable the named VM flag -flag <name>=<value> to set the named VM flag to the given value -flags to print VM flags -sysprops to print Java system properties <no option> to print both of the above -h | -help to print this help message4、 jmap:Java内存映像工具
jmap命令格式:
jmap [ option ] vmid
5、jhat:虚拟机堆转储快照分析工具
jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法的堆栈的机会,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源。
jstack命令格式:
jstack [ option ] vmid
option选项的合法值与具体含义为:
(1)-F : 当正常输出的请求不被响应时,强制输出线程堆栈
(2)-l:除堆栈外,显示关于锁的附加信息
(3)-m:如果调用到本地方法的话,可以显示C/C++的堆栈
JDK的可视化工具
1、JConsole:Java监视与管理控制台
2、VisualVM:多合一故障处理工具(需要下载安装)
相关推荐
第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是锁的支持。第9~~10章介绍了虚拟机的核心——Class文件结构,以及虚拟机中类的装载...
第6章介绍了虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是锁的支持。第9~10章介绍了虚拟机的核心——Class文件结构,以及虚拟机中类的装载系统...
第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机...
第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机...
工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照文件(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。使用JVM命令和一查看这个JVM参数,帮助我们排查、...
- 第4章 虚拟机性能监控、故障处理工具- 4.2 基础故障处理工具JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来
第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机...
第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机...
虚拟机性能监控与故障处理工具 内存溢出问题及调优 类文件结构 虚拟机类加载机制 编译期编译优化 运行期优化 高效并发-java内存模型与线程 线程安全与锁优化 1 标记-清除算法:首先标记所有需要回收的对象(引用计数...
概述 Java内存区域 GC与内存分配策略 虚拟机性能监控与故障处理工具 类文件结构 类加载机制 字节码执行引擎
- 第4章 虚拟机性能监控、故障处理工具- 4.5 本章小结本章介绍了随JDK发布的6个命令行工具与4个可视化的故障处理工具,灵活使用这些工具,可以 为处理问题
JVM监控管理及故障诊断工具(常用命令),文中的命令常用于监视JVM虚拟机性能及资源消耗情况。
第4章 虚拟机性能监控与故障处理工具 4.1 概述 4.2 JDK的命令行工具 4.2.1 jps:虚拟机进程状况工具 4.2.2 jstat:虚拟机统计信息监视工具 4.2.3 jinfo:Java配置信息工具 4.2.4 jmap:Java内存映像工具 ...
/ 66 3.5.2 大对象直接进入老年代 / 68 3.5.3 长期存活的对象将进入老年代 / 69 3.5.4 动态对象年龄判定 / 71 3.5.5 空间分配担保 / 73 3.6 本章小结 / 75 第4章 虚拟机性能监控与故障处理工具 / 76 4.1 概述...
《Java程序性能优化:让你的Java程序更快、更稳定》共6章,先后从软件设计、软件编码、JVM调优以及程序故障排斥等方面介绍...第6章为工具篇,介绍了获取和监控程序或系统性能指标的各种工具,包括相关的故障排查工具。
第6章为工具篇,介绍了获取和监控程序或系统性能指标的各种工具,包括相关的故障排查工具。 本书适合所有Java程序员、软件设计师、架构师以及软件开发爱好者,对于有一定经验的Java工程师,本书更能帮助他突破技术...