1.使用工具jvisualvm.exe 可以直接监控各种信息。
如果是远程监控tomcat ,在catalina.sh 添加如下参数设置:
JAVA_OPTS='-server -Xmn800M -Xms1024M -Xmx1333M -Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=99.6.136.53'
2.分析使用
jmap -dump:format=b,file=xxx pid 产生堆存储文件
jhat -J-Xmx1024M [file] 分析堆文件
jstack id 查看线程栈情况
也可以使用jvisualvm 分析堆文件
jstat -gc pid 监控GC,堆情况
3.OQL
对应实例总数,加了过滤
select count(filter(heap.objects('java.util.concurrent.LinkedBlockingQueue$Node'),'it.item!=null'))
列出所有实例
select x from com.xiao.Consume x
详情见:http://visualvm.java.net/oqlhelp.html#sum