jvm性能监控与故障处理工具

jdk的命令行工具:

jps jvm process status tool,显示指定系统内所有的HotSpot虚拟机进程
jstat jvm statistics monitoring tool,用于收集HotSpot虚拟机各方面的运行数据 
jinfo configuration info for java,显示虚拟机配置信息 
jmap  memory map for java,生成虚拟机的内存转储快照(heapdump文件)
jstack  stack trace for java,显示虚拟机的线程快照
jhat  jvm heap dump browser,用于分析heapdump文件它会建立一个http/html服务器,让用户可以在浏览器上查看结果

jps:

-q:只输出进程id的名称,省略主类的名称

-m:输出进程启动时传递给main函数的参数

-l:输出主类的全名,如果执行的是jar文件,则输出jar文件的路径

-v:输出虚拟机进程启动时所带的jvm参数

jstat:

-class:用来查看类加载的统计信息

-compiler:用来查看即时编译器编译相关信息的统计

-gc:用来查看jvm中垃圾收集情况的统计信息,包括Eden区,2个survivor区域,老年代永久代的容量和已用空间,gc时间

-gccapacity:用来查看新生代、老年代和永久代的存储容量

-gccause:查看垃圾收集的统计情况,并且显示最后一次及当前正在发生的垃圾收集的原因

-gcnew:查看新生代垃圾收集情况

-gcnewcapacity:查看新生代存储容量情况

-gcold:查看老年代和持久代发生的gc情况

-gcoldcapacity:查看老年代容量

-gcpermcapacity:查看持久代容量

-gcutil:查看新生代、老年代和持久代的垃圾收集情况

-printcompilation:查看通过jit编译过的方法

jinfo:

jps -v可以查看虚拟机启动时显式指定的参数列表,jinfo可以查看未被显式指定的虚拟机参数的系统默认值。同时jinfo还可以在运行时修改一部分jvm参数。

jmap: 

-heap:打印堆的概要信息,包括使用回收器的类型、堆的配置信息、各内存分代的空间使用情况

-histo[:live]:打印每个class的实例数、内存占用、类全名等信息,假如指定live选项,则只能统计当前还存活的对象数量

-permstat:打印每个ClassLoader和该ClassLoader所加载的class的数量

-finalizerinfo:显示在F-Queue中等待Finalizer线程执行finalize方法的对象

-dump:[live,]format=b,file=<filename>:生成jvm的堆转储快照,live指定是否只需要dump出活的对象,format=b表示采用二进制格式,file指定存储的文件名

-F:当jvm进程对-dump操作没有响应时,使用该选项可以强制生成堆转储快照

jstack:

-F:用来在输出不被响应时强制生成线程的快照

-m:打印出包含java和native代码的所有堆栈信息

-l:打印关于锁的附加信息

 

posted on 2019-12-02 13:54  shammgod_code  阅读(176)  评论(0编辑  收藏  举报

导航