记一次 GC 频繁且间隔较长解决实战总结
1.背景
XX大数据项目,进行高并发且长时间的压测验证系统稳定性的表现。
2.异常问题
压测中发现,探针监控到应用服务器集群内存消耗达到85%左右,且压测结束后内存不释放。
3.问题定位
集群中的应用服务器逐一分析,定位到41节点对应的应用服务器,GC回收Old Gen一直处于上升的趋势,Young Gen波动较小,GC频繁且GC回收间隔较长。
异常趋势图如下:
4.初步解决方案
-XX:NewSize=3g,-XX:MaxNewSize=3g
调优趋势图如下:
5.总结
性能压测中,对于内存的要求,除了稳定不泄漏、不争Swap等,GC资源回收表现也是一个重要的指标。引起GC频繁的因素除了人为代码、脚本或程序调用的框架中调用了GC方法,内存本身也是个重要因素,当Heap设置较小或默认的过小会引起频繁的GC,所以当类似Spark、大数据、人工智能等对内存性能要求很高的相关的项目或程序时,需分配给Heap较大的内存空间,减少GC频繁导致系统出现性能异常。
看完三件事❤️
如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
关注公众号 『 java烂猪皮 』,不定期分享原创知识。
同时可以期待后续文章ing🚀
作者:若岛
评论