JVM:JVM调优-工具学习

jconsole

Jdk自带的,可用查看jvm运行时的各种状态动态数据,例:堆内存、线程数、类加载卸载数、CPU占用率等,还可以检测死锁。
可以通过jconsole查询本地jvm进程获取远程jvm进程,注意要查看远程的jvm进程需要在远程tomcat启动脚本中添加以下代码:

 -Dcom.sun.management.jmxremote.port=6969  
 -Dcom.sun.management.jmxremote.ssl=false  
 -Dcom.sun.management.jmxremote.authenticate=false

连接成功可以展示以下东西:
在这里插入图片描述
概览面板可以查看内存线程数、类加载卸载数、以及CPU占有率的走势。
可以点击内存、线程、类页签详细查看,其实内存页,可以查看内存各个部分的详细信息,还可以通过右上角执行GC按钮来查看GC前后内存的对比
在这里插入图片描述
在这里插入图片描述

还可以在线程页签,点击检测死锁来查看正在互相等待中的死锁线程
在这里插入图片描述

visualVM

jdk自带的,可以用来分析dump出来的堆栈文件。
在这里插入图片描述
导入需要分析的堆栈文件
在这里插入图片描述
通过概要页签可以看到OOM的位置
在这里插入图片描述
通过类页签可以判断内存泄露的是哪些对象。
在这里插入图片描述
还可以看到内存泄露的位置

猜你喜欢

转载自blog.csdn.net/qq_28605513/article/details/85244018