jvm常用监控工具详细介绍 下
使用jvisualvm
第一种在jdk安装目录的bin下
第二种 win+r 输出jvisualvm 也可直接打开
打开->导入->文件类型选择dump->点击你的dump文件
案例分析
创建list集合 存放user对象
死循环创建对象 对象创建在堆 直至内存沾满 爆出内存溢出
运行设置vm 参数
对内存溢出进行分析
可以看到红色的实例数,点击进去
可以看出创建了很多实例,然后去找代码,解决
死锁检测
第一种
第二种 jconsole
第三种
jstack pid
远程连接jvisualvm
jconsole也可以远程链接
JAVA_OPTS=-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
jvisualvm远程连接服务需要在远程服务器上配置host(连接ip 主机名),并且要关闭防火墙
jstack找出占用cpu最高的堆栈信息
生产问题分析
1,使用命令top -p <pid> ,显示你的java进程的内存情况,pid是你的java进程号,比如4977
4,转为十六进制得到 0x1371 ,此为线程id的十六进制表示