在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文件结构,以及虚拟机中类的装载...
本篇文章将详细介绍Java开发工具包(JDK)中的一些重要监控和故障处理工具,这些工具可以帮助开发者识别和解决生产环境中的内存溢出问题,进而提升应用程序的性能和稳定性。 首先,我们来了解JDK提供的几个监控和...
第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虚拟机...
4. **性能监控与调优工具**:JDK自带的一些工具,如jconsole、jvisualvm、jmap、jstack等,是JVM性能分析的重要辅助。书中可能详细讲解了这些工具的使用方法和分析技巧。 5. **JVM参数设置**:了解并合理设置JVM...
例如,合理设置堆大小、新生代与老年代的比例,选择合适的GC策略,避免死锁和竞态条件,以及利用JDK工具(如JVisualVM、JProfiler等)进行性能监控和分析。 5. **故障诊断**:当遇到JVM异常或性能问题时,我们需要...
- 第4章 虚拟机性能监控、故障处理工具- 4.2 基础故障处理工具JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来
书中介绍了使用JDK自带的工具,如jconsole、jvisualvm、jmap、jhat等进行性能监控和问题排查的方法。读者将学习如何分析堆内存、GC日志,以及如何利用线程Dump来定位死锁和线程阻塞等问题。 书中还涉及了JVM的编译...
《实战JAVA虚拟机 JVM故障诊断与性能优化》是一本深度探讨Java虚拟机(JVM)的专著,旨在帮助开发者解决实际工作中遇到的JVM相关问题,提升系统的性能表现。通过对JVM内部机制的深入理解,我们可以更有效地调试、...
4. **性能监控工具** - **JVisualVM**:内置丰富的JVM监控和分析功能,如CPU、内存、线程等。 - **JConsole**:提供GUI界面,监控JVM的各种性能指标。 - **JMX**:Java管理扩展,允许远程监控和管理应用程序。 5...
《JAVA虚拟机故障诊断与性能优化》是一本深入探讨Java虚拟机(JVM)核心概念和技术的实战指南。这本书涵盖了JVM的内部架构、运行机制、参数调整、垃圾收集算法以及性能优化和故障排查等多个重要方面,对于Java开发者...
4. **VMware vSphere Performance Manager (vRealize Operations)**:这是一款性能监控和智能分析工具,可以深入洞察虚拟环境的性能瓶颈。它提供了实时和历史性能数据,帮助管理员识别潜在问题,优化资源分配,确保...
"java虚拟机监控"就是这样一个过程,通过收集和分析JVM的各项指标,我们可以识别性能瓶颈,预防内存泄漏,以及确保应用的稳定运行。 "jvisualvm"是一款强大的工具,它是Java Development Kit(JDK)的一部分,提供...
在实际工作中,结合日志、性能指标以及这些故障处理工具,可以形成一套完整的故障排查和优化流程,从而提升开发和运维效率。记住,知识、经验、数据和工具是定位问题的关键要素,理解并掌握它们,对任何Java开发者来...