媒介
定位系统问题的时候,常识、履历是基本,数据是依据,东西是运用常识处理惩罚数据的手段。这里说的数据包罗:运行日志、异常仓库、GC日志、线程快照、堆转储快照等。常常利用适当的虚拟机监控和阐明的东西可以加速阐明数据、定位办理问题的速度。
jps:虚拟机历程状况东西
首先约定一下运行的代码都是以下这段
public class TestMain { public static void main(String[] args) { while (true) { } } }
JDK的许多小东西的名字都参考了UNIX呼吁的定名方法,jps(JVM Process Status)是个中的典范。除了名字像UNIX的ps呼吁外,它的成果也和ps呼吁雷同:可以列出正在运行的虚拟机历程,并显示虚拟机执行主类名称以及这些历程的当地虚拟机独一ID(Local Virtual Machine Identifier,LVMID)。固然成果较量单一,但它是利用最高的JDK呼吁行东西,因为其他的JDK东西大多需要输入它查询到的LVMID来确定要监控的是哪一个虚拟机历程。
jps呼吁名目:
jps [ options ] [ hostid ]
jps东西主要选项
选 项 | 作 用 |
-q | 只输出LVMID,省略主类的名称 |
-m | 输出虚拟机历程启动时通报给主类main()函数的参数 |
-l | 输出主类的全名,假如历程执行的是jar包,输出jar包路径 |
-v | 输出虚拟机历程启动时的JVM参数 |
jps执行样例
昆山软件开拓 I支持)虚拟机历程中的类信息、内存、垃圾收集、JIT编译等运行数据" src="http://www.importnew.com/https:/images2015.cnblogs.com/blog/801753/201509/801753-20150927172759756-1369001787.png" />
某个虚拟机历程执行TestMain这个类的main要领,看到10492就是该虚拟机历程的ID
jstat:虚拟机统计信息监控东西
jstat(JVM Statistics Monitoring Tool)利用于监督虚拟机各类运行状态信息的呼吁行东西。它可以显示当地可能长途(需要长途主机提供RMI支持)虚拟机历程中的类信息、内存、垃圾收集、JIT编译等运行数据,在没有GUI,昆山软件开发,只提供了纯文本节制台情况的处事器上,它将是运行期间定位虚拟机机能问题的首选东西。
jstat呼吁名目
jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]
这个VMID,对付当地虚拟机历程而言,VMID和LVMID是一致的。参数interval和count别离暗示查询隔断和次数,假如省略这两个参数,说明只查询一次,假设需要每250毫秒查询一次历程2764的垃圾收集环境,一共查询20次,那呼吁该当是:
jstat -gc 2764 250 20
jstat主要东西选项
选 项 | 作 用 |
-class | 监督类装载、卸载数量、总空间以及类装载所淹灭的时间 |
-gc | 监督Java堆状况,包罗Eden区、两个Survivor区、、暮年月、永久带等的容量、已用空间、GC时间合计等信息 |
-gccapacity | 监督内容根基与-gc沟通,但输出主要存眷Java堆各个区域利用到的最大、最小空间 |
-gcutil | 监督内容根基与-gc沟通,但输出主要存眷已利用的空间占总空间的百分比 |
-gccause | 与-gcutil成果一样,可是会特别输出导致上一次GC发生的原因 |
-gcnew | 监督新生代GC状况 |
-gcnewcapacity | 监督内容根基与-gcnew沟通,但输出主要存眷利用到的最大、最小空间 |
-gcold | 监督暮年月GC状况 |
-gcoldcapacity | 监督内容根基与-gcold沟通,但输出主要存眷利用到的最大、最小空间 |
-gcpermcapacity | 输出永久代利用到的最大、最小空间 |
-compiler | 输出JIT编译器编译过的要领、耗时等信息 |
-printcompilation | 输出已经被JIT编译的要领 |
jstat执行样例
jstat监督选项浩瀚,举一个例子来查察一下该呼吁如何查察监督功效
昆山软件开拓 I支持)虚拟机历程中的类信息、内存、垃圾收集、JIT编译等运行数据" src="http://www.importnew.com/https:/images2015.cnblogs.com/blog/801753/201509/801753-20150927175643069-377631724.png" />
查询功效表白,新生代Eden区(E,暗示Eden)利用了2%的空间,两个Survivor区(S0、S1,暗示Survivor0、Survivor1)都是空的,暮年月(O,暗示Old)和永久带(P。暗示Permanent)则别离利用了0%和13.84%的空间。措施运行以来共产生Minor GC(YGC,暗示Young GC)0次,总共耗时0秒;产生Full GC(FGC,暗示Full GC)3次,Full GC共耗时(FGCT,Full GC Time)为0秒,所有GC总耗时(GCT,暗示GC Time)0秒。
jinfo:Java设置信息东西