读书人

【原】JDK自带分析有关问题工具

发布时间: 2012-10-11 10:16:10 作者: rapoo

【原】JDK自带分析问题工具

? ? 工欲善其事必先利其器,这里把jdk自带的工具熟悉一下,有问题能够直接拿过来用。

? ? JDK自带了几个比较实用的工具,这里汇总用法,主要是介绍一些参数的用法,排查问题的时候很有用的。

??? 常用的是后面三个,需要对于java的内存区域有一定的了解之后用起来会更加的心应手,需要了解java内存模型的可以参照一下我之前系的一篇简单的入门博客。

?

?


(1)jsp打印出java的进程号,类似于linux的ps,不是很常用,一般用linux的 ps -ef | grep java来代替

?

A. -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数

?

B.?-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null

?

C.?-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

?

$ jstat -gc 5098 1000 10
5098为java的进程ID,1000为每隔1s打印一次,10为连续打印10次
 S0C      S1C     S0U    S1U      EC       EU                   OC         OU               PC        PU      YGC     YGCT    FGC    FGCT     GCT   6976.0 6528.0  0.0    0.0   314176.0 230746.6  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 230746.6  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 230746.6  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 230831.1  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 230831.1  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 231202.0  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 231202.0  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 231202.1  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 231202.1  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.0586976.0 6528.0  0.0    0.0   314176.0 231243.4  458752.0   59883.9   98304.0 84466.1     48    0.894  29     10.165   11.058

?

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

?

其他一些不是很常用的参数:

?

-class:统计class loader行为信息-compile:统计编译行为信息-gc:统计jdk gc时heap信息-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况-gccause:统计gc的情况,(同-gcutil)和引起gc的事件-gcnew:统计gc时,新生代的情况-gcnewcapacity:统计gc时,新生代heap容量-gcold:统计gc时,老年区的情况-gcoldcapacity:统计gc时,老年区heap容量-gcpermcapacity:统计gc时,permanent区heap容量-gcutil:统计gc时,heap情况

?

?


(4)jstack 打印出java中线程的情况,用于分析线程相关问题非常有用

?

?

?

读书人网 >互联网

热点推荐