JVM内存监控主要在稳定性压测期间,监控应用服务器内存泄露等问题;
- 【JVM远程监控设置】
1、打开WAS控制台:https://ip:port/ibm/console/login.do
2、进入路径:应用程序服务器 > Server_Name > 进程定义> Java 虚拟机
3、在通用JVM参数中开启远程访问,并设置远程访问端口为1099
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099
4、重启应用
JDK1.6开始自带的VisualVM就是不错的监控工具。
这个工具就在JAVA_HOMEin目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面
远程访问JVM
1、右键点击【远程】,选择添加远程主机
2、输入远程主机名,此处输入远程主机的IP地址后,点击确定。
3、右键IP地址,点击添加JMI连接
4、输入监控端口,本次设置开启的端口为1099,亦可设置其它不被占用的端口。
5、双击ip:port后,即可打开JVM的整体监控页面
JVM监控
可查看堆空间大小分配(年轻代、年老代、持久代分配)
提供即时的垃圾回收功能
垃圾监控(长时间监控回收情况)
- 【ThreadDump分析】
1,抓取Thread Dump
方法1:右键 ip:port后,选择【线程Dump】
方法2:在线程tab页中,右上角有个线程Dump按钮
2,分析Thread Dump
locked表示该线程锁住了该锁
图中的0X10032710和0X10032718互相等待,互相锁死