jvm性能分析工具使用

Posted akid1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm性能分析工具使用相关的知识,希望对你有一定的参考价值。

jvm性能分析

一、JPS:列出本机所有java进程的pid

  命令选项

  • -q 仅输出VM标识符,不包括class name,jar name,arguments in main method
  • -m 输出main method的参数
  • -l 输出完全的包名,应用主类名,jar的完全路径名
  • -v 输出jvm参数
  • -V 输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
  • -Joption 传递参数到vm,例如:-J-Xms48m

二、jmap:性能调优工具

  jmap -help 查看命令使用说明

  如图,命令格式:jmap [option] <pid>

  参数:

  • option: 选项参数。
  • pid: 需要打印配置信息的进程ID。
  • executable: 产生核心dump的Java可执行文件。
  • core: 需要打印配置信息的核心文件。
  • server-id 可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器。
  • remote server IP or hostname 远程调试服务器的IP地址或主机名。

  option参数:

  • no option: 查看进程的内存映像信息,类似 Solaris pmap 命令。
  • heap: 显示Java堆详细信息
  • histo[:live]: 显示堆中对象的统计信息
  • clstats:打印类加载器信息
  • finalizerinfo: 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
  • dump:<dump-options>:生成堆转储快照
  • F: 当-dump没有响应时,使用-dump或者-histo参数. 在这个模式下,live子参数无效.
  • help:打印帮助信息
  • J<flag>:指定传递给运行jmap的JVM的参数

技术图片 

 

 

 

 

 

 

 

 

 

 

三、jstack:查看某个Java进程内的线程堆栈信息

jstack主要用来查看某个Java进程内的线程堆栈信息。语法格式如下:

jstack [option] pid

参数如下:

  1. -l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况
  2. -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)

 

技术图片

 

 

四、jstat:JVM统计监测工具

每隔1000ms打印一次记录,打印10次停止,每3行后打印指标头部

 jstat -gc -h3 10 1000 10

技术图片

 

 

五、hprof:展现CPU使用率,统计堆内存使用情况

 

六、Top:打印进程使用资源

以上是关于jvm性能分析工具使用的主要内容,如果未能解决你的问题,请参考以下文章

JVM性能调优监控工具专题一:JVM自带性能调优工具

JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

分析定位占用CPU资源高的JVM线程

如何为自定义JVM语言实现静态代码分析工具的类型信息?

ifeve.com 南方《JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码》

sjk 一个强大的jvm 分析工具