一. jps:显示当前用户的java进程的pid,进程的启动路径等.,jps的优点是能迅速的找到java相关的进程,缺点是只能查看 当前用户的java进程,查看系统上所有的java进程,还是得用ps -ef | grep java.
常用参数示例:
jps -l 输出应用程序main class的package名或者应用程序的jar文件路径名
D:\>jps -l
6064 test.jar
4804 sun.tools.jps.Jps
jps -v 输出应用程序启动的时候传递给JVM的参数
D:\>jps -v
6064 jar
5336 Jps -Denv.class.path=.;D:\Program files\jdk1.6\lib; -Dapplication.home=D:\Program
files\jdk1.6 -Xms8m
更多参数及其含义:http://docs.oracle.com/javase/6/docs/technotes/tools/share/jps.html
二. jstat.利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控等等.
常用参数示例:
D:\>jstat -gcutil 6064 10000 3 统计gc时,heap信息变化情况
S0 S1 E O P YGC YGCT FGC FGCT GCT
97.93 0.00 26.39 86.29 2.95 26 0.153 4 0.465 0.618
97.93 0.00 55.49 86.29 2.95 26 0.153 4 0.465 0.618
97.93 0.00 84.59 86.29 2.95 26 0.153 4 0.465 0.618
10000 代表多久间隔显示一次,
3 代表显示多少次。
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 — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
更多参数及其含义:
http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html
三.jstack: jstack可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现死锁的状态,jstack是非常有用的.
D:\>jstack -l 5808 > jstack.log 打印出log会包含jvm运行的一些系统线程和用户的线程栈信息.
下面截取部分用户线程的栈信息:
"main" prio=6 tid=0x00549400 nid=0x163c waiting on condition [0x003bf000..0x003bfe30]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at com.ldh.GCTest.main(GCTest.java:12)
Locked ownable synchronizers:
- None
从上面可以看出线程"main"的正在sleep
D:\>jstack -m 5752 > jstack.log 不仅打印java栈信息,还会打印出通过jni调用的接口栈信息
不过需要在linux执行才会有结果
jvm常用线程,参见:http://blog.csdn.net/a43350860/article/details/8134234
更多参数及其含义:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstack.html
四. jmap: 打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量),以及Heap size, Perm size的大小等。
通过在VM参数后加-XX:+HeapDumpOnOutOfMemoryError -
XX:HeapDumpPath=/home/admin/logs/java.hprof ,在内存溢的时候会dump内存快照及指定内存快照的存储文件.也可以通过命令行dump命令执行时的内存快照.
示例如下:
D:\>jmap -dump:format=b,file=D:/dump.log 5752
Dumping heap to D:\dump.log ...
Heap dump file created
D:/dump.log的内容是二进制的,直接打开查看是不行的,可以通过mat进行查看,
mat的下载地址:http://www.eclipse.org/mat/.mat分析的内容非常详细.
五.jconsole:jconsole是jdk自带的一个内存分析工具,它提供了图形界面。可以查看到被监控的jvm的内存信息,线程信息,类加载信息,MBean等信息。在java的安装目录的bin目标下.
六.jvisualvm: 它不但提供了jconsole类似的功能,还提供了jvm内存和cpu实时诊断,还有手动dump出jvm内存情况,手动执行gc.
相关推荐
Java性能调优工具简介,包括Linux系统层面的调优工具介绍和java层面调优的工具介绍
Java性能调优工具及方法介绍 可配合工具用于内存泄漏问题快速排查
jvm性能调优工具命令大全.zip jps jstat jmap jhat jstack jinfo jps JVM Process Status Tool GChisto jvisualvm ...
java性能调优大全,内置了较全的资料: visualVM使用 JVM性能调优,典型配置,JVM启动配置。 OMM的场景 jstat详解 性能分析工具比对 内存溢出解决方法。
JAVA JVM性能调优监控工具详解
开篇词讲怎样才能做好性能调优02讲如何制定性能调优策略04讲慎重使用正则表达式05讲ArrayList还是LinkedList使用不当性能差千倍07讲深入浅出HashMap的设计与优化08讲网络通信优化之IO模型:如何解决高并发下IO瓶颈09...
对 Java 工程师而言,性能优化能力决定了你能否进入大厂或成为一名高级工程师。但性能优化的能力却极难提升,如果你缺乏正确的方法论和实战演练,则很容易事倍功半。 视频大小:1.2G
太细了,堪称完美总结:“Java性能调优六大工具”之Windows工具(csdn)————程序
JVM系列之性能调优参考手册(实践篇).pdf,资源分享达人
Mac版JProfiler+JVM性能调优工具。 JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
本文介绍了什么是Java,AIX下的Java版本,Java的性能准则,AIX提供的监视Java的工具,以及如何在AIX用户环境下进行Java应用程序性能调优。
Oracle性能优化 手册 性能优化系列
性能调优工具,可以一键获取CPU等模块指标。
您可以应用这些简单的一步步的性能调优示例来提高您自己的 DB2 UDB 数据库系统上的性能。此外,您也有机会了解如何评估和分析访问计划,并修复“糟糕的查询”。在该文章系列的第 2 部分中,我们将使用更完整的数据库...
关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出是运行环境中Java 组件的性能需要改善。 ——参考资料:仅个人学习,未详尽测试,请自行调试!!
Smartperf_Host是一款深入挖掘数据、细粒度地展示数据的性能功耗调优工具,旨在为开发者提供一套性能调优平台,支持对CPU调度、频点、进程线程时间片、堆内存、帧率等数据进行采集和展示,展示方式为泳道图,支持GUI...
JVM性能调优监控工具1
Java生产环境下性能监控与调优详解视频教程 jstat查看JVM统计信息 jstack与线程的状态 MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中...
将视频整合成为思维导图,看着方便,节省时间。 内容包括:(1)基于JDK命令后工具的监控(2)基于Btrace的监控调试...(4)java代码层优化(5)JVM层GC调优(6)基于JVisualVM的可视化监控(7)tomcat性能监控和调优