利用jvisualvm分析JVM,进行性能调优

简介: 什么是jvisualvm?jvisualvm是JDK自带分析工具。可分析JDK1.6及其以上版本的JVM运行时的JVM参数、系统参数、堆栈、CPU使用等信息。可分析本地应用及远程应用。在JDK1.6以上版本中自带。

什么是jvisualvm?

jvisualvm是JDK自带分析工具。

可分析JDK1.6及其以上版本的JVM运行时JVM参数系统参数堆栈CPU使用等信息。可分析本地应用及远程应用。

在JDK1.6以上版本中自带。

工具在哪找?

在jdk包中:%JAVA_HOME%binjvisualvm.exe

怎么用?

1.进入JVM进程

进入工具后,在工具左侧即可选中当前运行的JAVA进程,双击可查看进程详情。

_1

2.查看运行环境及JVM参数

2

3.查看JVM垃圾回收、进程等

主要是为了查看垃圾回收次数,频繁的垃圾回收对系统性能也有影响。

image2018_7_12_17_34_18

4.分析应用性能

利用这个工具分析应用性能效果杠杠的,主要是利用抽样器统计每个线程中,每个方法的执行时间,这样就能看到一次请求过程中,到底是哪个方法/查询导致响应时间长。

4.1点开抽样器,点击CPU,进行CPU抽样

5

4.2抽样一段时间后,点击快照,对从点击抽样开始的这段时间,进行CPU使用的统计。

6

4.3然后就能看到这段时间里,每个方法被使用的总时间以及时间占比啦,调用堆栈可一直追踪至native方法。
这样就可以很轻松的分析出,到底是哪个方法占了我宝贵的时间!

22222

5.分析远程应用

如果要分析远程应用,需要远程服务暴露JMX服务,然后本地再用该工具进行连接。所以需要对远程服务的JVM启动参数进行配置。

5.1在JVM启动参数中增加JMX配置:

#建立链接的端口
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=8090"
#不启用ssl
JAVA_OPTS="-Dcom.sun.management.jmxremote.ssl=false $JAVA_OPTS"
#不启用登陆验证
JAVA_OPTS="-Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS"
#rmiServer
JAVA_OPTS="-Djava.rmi.server.hostname=10.137.126.42 $JAVA_OPTS"

#启动命令
java $JAVA_OPTS -jar jarName.jar  >/dev/null 2>&1 &

5.2注意服务器开放端口

远程服务启动后,除配置端口外,还会开放两个随机端口,本地服务还会访问这两个随机端口,所以在有网络权限限制的时候,需要把本地 -> 服务器高位端口(10000-65535) 都申请允许访问。

image2018_7_12_18_8_39

5.3最后本地远程添加主机,建立JMX链接即可。
image2018_7_12_18_10_19

相关文章
|
3月前
|
缓存 Java 中间件
jvm性能调优实战 -55RPC调用引发的OOM故障
jvm性能调优实战 -55RPC调用引发的OOM故障
57 0
|
3月前
|
缓存 监控 Java
jvm性能调优实战 - 48无限循环调用和没有缓存的动态代理引起的OOM
jvm性能调优实战 - 48无限循环调用和没有缓存的动态代理引起的OOM
39 0
|
3月前
|
消息中间件 存储 Java
jvm性能调优实战 - 47超大数据量处理系统是如何OOM的
jvm性能调优实战 - 47超大数据量处理系统是如何OOM的
42 0
|
3月前
|
Java
jvm性能调优实战 - 46堆区OOM解析
jvm性能调优实战 - 46堆区OOM解析
39 0
|
3月前
|
缓存 监控 算法
jvm性能调优实战 - 39一次大促导致的内存泄漏和Full GC优化
jvm性能调优实战 - 39一次大促导致的内存泄漏和Full GC优化
68 0
|
3月前
|
架构师 Java
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
jvm性能调优实战 - 35电商APP后台系统如何对Full GC进行深度优化
52 0
|
3月前
|
监控 数据可视化 Java
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
51 1
|
3月前
|
存储 分布式计算 前端开发
jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Young GC的
jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Young GC的
61 0
|
2月前
|
存储 监控 Java
JVM内存泄漏的分析与解决方案
JVM内存泄漏的分析与解决方案
|
2月前
|
存储 监控 Java
JVM监控和分析技术在实践中可能会面临什么?
JVM监控和分析技术在实践中可能会面临什么?