分类: Java
2016-07-16 15:16:49
Sunjdk监控和故障处理工具
名称 主要作用
Jps jvm process status tool 显示制定系统内所有的hotspot虚拟机进程
Jstat jvm statistics monitoring tool 用于收集hotsport虚拟机各方面的运行数据
Jinfo 显示虚拟机配置信息
Jmap 生成虚拟机的内存暂存快照
Jhat 用于分析heapdump文件,他会建立一个http/html服务器,可以在浏览器···查看分析结果
显示虚拟机线程快照
Jps的作用和linux中ps的作用是相同的,都是可以查看当前虚拟机在运行进程id。
Jstat [option vmid [interval [s|ms] [account]] ]
对于命令中的vmid和lvmid需要特别说明一下:如果是本地虚拟机进程,vmid和lvmid是一致的。如果是远程虚拟机进程,那vmid的格式是
[protocol:] [//] lvmid [@hostname[:port]/servername]
参数interval和 count代表查询间隔和查询次数。如果省略这两个参数,只查询一次。假设没250ms查询一次进程2745的垃圾收集的状况。以供查询20次,命令应该是
Jstat -gc 2745 250 20
选项option代表着用户需要查询的虚拟机信息。主要有三类,类装载,垃圾收集,和运行期编译情况
Jstat工具主要选项
选项 作用
-class 监视类装载,卸载数量,总空间即类装载所耗费的时间
-gc 监视java堆状况,包括Eden区,两个suvivor区,老年代,永久带的容量
-gccapacity 监视内容与-gc基本相同,但输出主要关注java堆各个区域的使用到最大和最小空间
-gcutil 监视内容与-gc基本相同,单输出关注已使用空间占总空间的百分比
-gcnew 监视新生代的gc收集情况
-gcnewcapacity 监视内容与- gcnew基本相同,但输出主要关注java堆各个区域的使用到最大和最小空间
-gcold 监视老年代的gc收集情况
-gcoldcapacity 监视内容与- gcold基本相同,但输出主要关注java堆各个区域的使用到最大和最小空间
-gcpermcapacity 输出永久带使用的最大和最小空间
-compiler 输出jit编译器编译过的方法和耗时。
-printcompilation 输出已经被jit编译的方法。
查询结果表明,我启动的服务器的新生代区域E(Eden)使用了0.51%内存。两个suvivor都是空的。(so,s1).老年代使用74.95%,永久带使用了99.81%,程序共发生Young gc 976次。耗时4.340毫秒。Full gc 101次,耗时46.866秒