堆内存分析

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

 

 

你可能感兴趣的:(java,gc,java)