JVM调优的步骤:
前提是先定位到GC的问题
怎么查看用的是什么垃圾回收器
一般是查默认,但是如果jdk的版本和回收器的版本不一样会有什么影响???TODO
把日志按路径打印到指定地方,找到GC日志,按下图观察gc的解读
这是yang gc的日志
当发生gc的时候,利用日志结合jconsole
详细的日志:
一些其他jdk自带的工具去看
jmap:实时获取gc信息
jstat:jstat -gcutil 看Full gc 的次数
jstack :查看线程的dump
背景:
可以用命令行,也可以用图形界面java VisualVM,如下
上图的dump怎么看?网上有对应的字段意思介绍//TODO
jconsole:图形化界面
发生了outofMenory的时候怎么定位,先设置JVM参数,然后将出问题的日志打印到对应的文件里去
打开MAT:定位内存的一些信息(尤其是内存泄露)
总结:
怀疑内存泄露的思考步骤:
1.看GC日志 126719K->126719K(126720K)
2.dump
3.MAT
1.占用Retained Heap
2.看有没有GC Root指向
//找下美团点评关于GC优化的文章TODO