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 阅读(179) 评论(0) 编辑 收藏 举报