JVM 工具监控
参考blog:
http://www.ityouknow.com/java/2017/02/22/jvm-tool.html
如何生成GC日志文件
注意事项:
- dump文件是 即时的内存快照信息,而log才是准确的所有的gc信息
- 文件名是dump的居然不被myeclipse识别为heap文件,而改成bin文件就认识了
-verbose:gc -Xloggc:/usr/local/jvmlog/gc.log
-XX:+PrintGCTimeStamps -XX:+PrintGCDetails./jmap -dump:format=b,file=t/usr/local/tmp/test.bin pid
生成dump文件通过JDK自带的 VisualVM工具,直接application 下选择 heap dump就可以了
通过配置server 参数,在OOM的时候生产内存快照
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR/java.hprof
其他相关参数调优:
https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
MAT eclipse 插件的安装和使用
先通过 myeclipse 的 help –> install from category –> 输入 mat搜索 安装好
重启之后,直接file –> open file 软件会自动判断是 heap 分析文件的。
常用功能
主要是通过图形化界面,画出即时dump文件里面堆的信息情况,分析完还会自动在dump同路径下生产zip的分析 html页面文件,666
- Histogram 列出内存中的对象,对象的个数以及大小
- Dominator Tree:列出最大的对象以及其依赖存活的Object (大小是以Retained Heap为标准排序的)
- Top Consumers : 通过图形列出最大的object
- Leak Suspects :内存泄漏分析
- Top Components: 列出大于总堆数的百分之1的报表。
GC Esay
http://gceasy.io
快捷的分析 log日志
VisualVM
jdk bin下自带的图形化界面