GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。那么weblogic中的GC日志又该如何分析呢,下面我们来做下讲解。
工具/原料
终端电脑
weblogic环境、GC日志文件
方法/步骤
1、GC日志位置GC为GarbageCollection的缩写,主要定位为:对JDKheap堆进行垃圾回收,释放不再active的对象。故,其生成的log文件越长,越具备分析价值。如下列出具体的配置方法,并定位输出位置:
2、存在一种临时查看的方法,具体思路为:通过JDK工具进行查看,如下:
3、分析方法GC日志,主要是JDK通过每一次的对象的gc回收,进行heap堆现有容量进行记录,故若要进行内存分析,需将点状态串在一起进行分析,故不推荐肉眼进行分析,耗时耗力。一般采用,开源的Gcviewerjar文件进行分析,其图形展现实例为:
4、其中,X轴为server运行的时长;Y轴为heap大小orGc使用时间;黑色线条为执行FULLGC点;蓝色线条为heap使用情况。放大后,具体情况为:
5、由图得知,分析思路:根据图中,X轴的时间间隔,可知单位间隔为5分钟;黑色线条为FULLGC,可知在15分钟内,发生了6次频繁的FULLGC现象;蓝色线条为heap使用,可知FULLGC原因,为同时又大对象约400m;故FULLGC原因为,JVM堆内存最大只有1258m,同时分配350m的对象必然会导致JVM不断的进行FULLGC以腾出巨大的空间来满足对象的内存申请;所以监控到的JVM剩余空间长期处于百分30以下,虽然执行GC能回收回来,且没有发生内存泄露,不过应用代码频繁申请如此大的对象也是不合理的,在并发访问量大的情况下,会非常影响性能,并容易导致内存溢出,需定位调整JVM。