jdk 1.7和1.8jvm性能监控和故障处理工具

jdk的bin目录下提供了很多jvm的性能监控工具,供我们使用。

jdk 1.7和1.8jvm性能监控和故障处理工具_第1张图片

  1. jsp 虚拟机进程状况工具

jps (jvm Process Ststus Tool)。功能类似于ps ,列出正在运行的进程。并显示虚拟机主类main函数所在类。

jsp -q 只输出LVMID

jps -m 输出jvm启动时,传递给主类main()函数的参数,主要是一些jvm配置信息。

jps -l 输出main函数的全名,如果是jar 输出jar的路径

jps -v 输出jvm进程启动时,jvm参数。我们可以用它来查看修改过的jvm参数是否生效。

2.jstat jvm虚拟机统计信息监视工具

jstat监视jvm虚拟机各种运行状态的命令行工具。可以显示类装载,内存,垃圾手机,jit编译等运行数据。

命令格式 jstat -gc 5000 200 5  含义:每200毫秒查询一次线程为5000的垃圾收集情况连续查询五次。

-class 监视类装载、卸载数量、总空间以及类加载耗时。

-gc 监视eden区,两个survivor区、老年代,方法区实现的元空间或者是永久带容量,已使用情况,已经ygc次数,耗时,fgc次数,耗时等信息。

-gccapacity 类似-gc偏向java堆内存

-gcutil  类似gc 偏向于已使用空间

-gccause 类似-gcutil 会输出上一次gc产生原因

-gcnew 新生代信息

-gcnewcapacity 新生代关注最大最小空间

-gcold 老年代

-gcmetacapacity元空间 (jdk1.8)

-gcpermcapacity 永久带(jdk1.7以前包括1.7)

-compiler JIT编译器编译过的方法耗时等

-printcompilation 输出已经被JIT编译的方法

jinfo java配置信息查询工具

jinfo -flags name pid 输出指定name的配置信息。  jinfo pid 会输出所有信息。

3.jmap :java 内存映像工具

格式:jmap option vmid

-dump 生成java堆快照。jmap -dump:format=b,file=a.bin 19992    为线程19992的jvm 生成堆快照,文件名为a.bin

-finalizerinfo 显示F-Queue中等待执行Finalizer线程执行finalized方法的对象,只在Linux/solaris平台下有效。f-queue,对象被回收前,最后的起死回生的队列。执行finalized后,如果存在引用,则不被回收。

-heap 显示堆详细信息

-histo 显示堆中对象统计信息

-permstat 显示永久代内存状态(jdk1.7之前)

-F 强制生成快照

4.jstack java堆栈跟踪工具

当线程出现停顿,未响应时可以查看虚拟机到底在后台在做什么。可以用来定位死锁,或者死循环位置,

格式jstack option vmid

-F 当正常输出的请求不被响应,强制输出线程的堆栈信息。

-l 除堆栈外显示锁的附加信息

-m 如果调用到本地方法native方法,可以显示c/c++的堆栈。

 

你可能感兴趣的:(深入理解JVM)