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的参数
参数如下:
- -l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况
- -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)
四、jstat:JVM统计监测工具
每隔1000ms打印一次记录,打印10次停止,每3行后打印指标头部
jstat -gc -h3 10 1000 10
五、hprof:展现CPU使用率,统计堆内存使用情况
六、Top:打印进程使用资源
以上是关于jvm性能分析工具使用的主要内容,如果未能解决你的问题,请参考以下文章
JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
ifeve.com 南方《JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码》