java虚拟机故障处理工具

1.jps虚拟机进程状态工具

选项 作用
-q 只输出LVMID,省略主类的名称
-m 输出虚拟机进程启动是传递给主类main()函数的参数
-l 输出主类的全名,如果进程执行的是JAR包,则输出JAR路径
-v 输出虚拟机进程启动是的JVM参数

2.jstat 虚拟机统计信息监视工具
可以显示类加载、内存、垃圾回收、即使编译等运行时数据
格式:jstat [ option vmid [interval[s|ms][count]]]
即: jstat -gc 2764 250 20
每250毫秒查询进程2764垃圾收集状况,一共查询20次

选项 作用
-class 监视类加载,卸载数量、总空间以及类装载所消耗的时间
-gc 监视java堆状况,包括Eden区,2个survivor区、老年代、永久代等的容量,已用空间,垃圾收集合计等信息
-gccapacity 监视内容基本和gc相同,但输出主要关注java堆各个区域使用到的最大最小空间
-gcutil 监视内容基本和gc相同,但输出主要关注已使用空间栈总空间的百分比
=gccause 与gcutil功能一样,但是会额外输出导致上一次垃圾回收的原因
-gcnew 监视新生代垃圾手机状况
-gcnewcapacity 监视内容和gcnew基本相同,输出主要关注使用到的最大、最小空间
-gcold 监视老年代垃手机状况
-gcoldcapacity 监视内容与gcold基本相同,输出主要关注使用到的最大、最小空间
-gcpermcapacity 输出永久代使用到的最大、最小空间
-compiler 输出即使编译器编译过的方法、耗时等信息
-printcompilation 输出已经被即使编译的方法

举例:jstat -gcutil 2764

s0 s1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 6.20 41.42 47.20 16 0.105 3 0.472 0.577
空的 空的 新生代Eden使用了6.2%的空间 老年代 永久代 (Minor)YGC16次 总耗时0.105秒 (FullGC)FGC3次 总耗时0.472秒 所有GC总耗时0.577秒

3.jinfo java配置信息工具
格式:jinfo [option] pid
例子:jinfo -flag CMSInitiaingOccupancyFraction 1444
-XX:CMSInitiactingOccupancyFraction=85
4.jmap 内存映像工具
获取内存快照、查询finalize执行队列、java堆和方法区的详细信息(内存使用率、当前使用的哪种收集器)
格式:jmap [option] vmid
举例:jmap -dump:format=b,file=eclipse.bin 3500
Dumping heap to C:UsersIcyFenixeclipse.bin...
Heap dump file created

选项 作用
-dump 生成java堆转储快照。格式为-dump:[live,]format=b,file=,其中live子参数说明是否只dump出存货的对象
-finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效
-heap 显示堆详细信息,如使用了那种收集器、参数配置、分代状况等。只在Linux/Solaris平台有效
-histo 显示堆中对象统计信息,包括类、实例数量、合计数量
-permstat 以ClassLoader为统计口径显示永久代内存状态,只在Linux/Solaris平台下有效
-F 当虚拟机进度对-dump选项没有响应时,可使用这个选项强制生成dump快照,只在Linux/Solaris平台有效
原文地址:https://www.cnblogs.com/bluekang/p/13899013.html