如何dump出jvm日志。
1. 在jvm启动的参数中,新增-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/java.hprof jvm参数。这样在发生jvm 内存溢出时,就会直接dump出java.hprof 文件了。
2. 直接导出jvm内存信息。
jmap -dump:format=b,file=/home/admin/logs/heap.hprof javapid
获得heap.hprof以后,就可以分析你的java线程里面对象占用堆内存的情况了。
推荐使用Eclipse插件Memory Analyzer Tool来打开heap.hprof文件。
Memory Analyzer Tool安装地址:http://download.eclipse.org/mat/1.3/update-site/
安装完后,把prof文件,直接拖动到eclipse中,就可以默认打开了。
要注意的是prof文件一般都比较大,所以,建议增大eclipse的heap空间,不然可能会在加载时出现oom的问题。
方法:在eclipse的eclipse.ini文件中增加-Xms -Xmx值即可。
分别说明一下各个配置参数
1.Histogram:列举了所有加载的类实例
按大小列出类的实例
Objects:对象数量
待续
2.Dominator Tree:列举了还未被GC的大对象
3.Top Consumers: 按对象的所占内存的空间排名
3.Leak Suspects:可疑对象分析报告.