java开发人员肯定知道jdk的bin目录中有java.exe javac.exe这两个命令行工具,但并非所有程序员都了解过jdk的bin目录之中其他命令行的作用。
jdk的工具,体积都比较小,这些命令行工具大多是jdk/lib/tools.jar类库的一层薄包装而已。他们的主要功能代码在tools类库中实现。
jdk开发团队选择采用java代码来实现这些监测工具是有特别用意的。当程序部署到生产环境后,无论直接接触物理服务器还是远程到服务器都可能受到限制。借助tools.jar类库里面的接口,我们可以直接在应用程序中实现强大的监控分析功能。
名称 主要作用
jps JVM Process Status Tool 显示指定系统内所有的hotspot虚拟机进程
jstat JVM Statistic Monitoring Tool 用于收集HotSpot虚拟机各方面的运行数据
jinfo Configuration Info for Java 显示虚拟机配置信息
jmap Memory Map for Java 生产虚拟机的内存转储快照(heapdump文件)
jhat JVM Heap Dump Browser 用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以再浏览器上查看分析结果
jstack Stack Trace for Java 显示虚拟机线程快照
jps:虚拟机进程状况工具
jps [options] [hostid]
jps -q 只输出LVMID 省略主类的名称
jps -m 输出虚拟机进程启动时传递诶主类main()函数的参数
jps -l 输出主类的全面,如果进程执行的jar包,输出jar路径
jps -v 输出虚拟机进程启动时jvm参数
jstat:虚拟机统计信息监视工具
jstat用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有gui图像界面,只提供纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选项。
jstat命令格式为:
jstat [option vmid [interval[s|ms] [count]]]
-class 监视类装载、卸载数量、总空间以及类装载所消耗的时间
-gc 监视java堆状况,包括eden区、两个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息
-gccapacity监视内容与-gc基本相同,但输出主要关注java堆各个区域使用到的最大、最小空间
-gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但会额外输出导致上一次gc产生的原因
-gcnew监视新生代GC状况
-gcnewcapacity 监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间
-gcpermcapacity输出永久代使用到的最大、最小空间
-compiler输出JIT编译过的方法、耗时等信息
-printcompilation输出已经被JIT编译过的方法
JDK的可视化工具
JDK中除了提供大量的命令行工具外,还有两个功能强大的可视化工具:JConsole和VisualVM,这两个工具是JDK的正式成员。
JConsole java监视与管理控制台 binjconsole.exe
VisualVM多合一故障处理工具 binjvisualvm.exe
相关性能检测工具的介绍网址
http://blog.sina.com.cn/s/blog_62d0d67b0100uekn.html
http://blog.csdn.net/chendc201/article/details/22905503
http://www.cnblogs.com/zhenjing/archive/2013/02/18/java_debug.html
http://developer.51cto.com/art/201204/327130.htm
http://blog.sina.com.cn/s/blog_62d0d67b0100uekn.htm