性能文章>记一次GC频繁且间隔较长解决实战总结>

记一次GC频繁且间隔较长解决实战总结原创

4年前
780201

1.背景
XX大数据项目,进行高并发且长时间的压测验证系统稳定性的表现。

2.异常问题
压测中发现,探针监控到应用服务器集群内存消耗达到85%左右,且压测结束后内存不释放。

3.问题定位
集群中的应用服务器逐一分析,定位到41节点对应的应用服务器,GC回收Old Gen一直处于上升的趋势,Young Gen波动较小,GC频繁且GC回收间隔较长。
异常趋势图如下:
45E6FE25F8C043449F053D60A8251B13.jpeg

4.初步解决方案
-XX:NewSize=3g,-XX:MaxNewSize=3g
调优趋势图如下:
D6F7FB04685C458793F89D7EF3135D83.jpeg

5.总结
性能压测中,对于内存的要求,除了稳定不泄漏、不争Swap等,GC资源回收表现也是一个重要的指标。引起GC频繁的因素除了人为代码、脚本或程序调用的框架中调用了GC方法,内存本身也是个重要因素,当Heap设置较小或默认的过小会引起频繁的GC,所以当类似Spark、大数据、人工智能等对内存性能要求很高的相关的项目或程序时,需分配给Heap较大的内存空间,减少GC频繁导致系统出现性能异常。

点赞收藏
若岛
请先登录,感受更多精彩内容
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步

为你推荐

万字完整深入解析JVM面试必备,原来这就是和年薪百万的差距

万字完整深入解析JVM面试必备,原来这就是和年薪百万的差距

搭稳Netty开发的地基,用漫画帮你分清同步异步阻塞非阻塞

搭稳Netty开发的地基,用漫画帮你分清同步异步阻塞非阻塞

为什么 JVM 叫做基于栈的 RISC 虚拟机

为什么 JVM 叫做基于栈的 RISC 虚拟机

聊聊Java 中的经典垃圾回收器

聊聊Java 中的经典垃圾回收器

如何随心所欲调试HotSpot VM源代码?(改造为CMakeLists项目)

如何随心所欲调试HotSpot VM源代码?(改造为CMakeLists项目)

朋友们,就在今天,JDK 21,它终于带着重磅新特性正式发布了!!!

朋友们,就在今天,JDK 21,它终于带着重磅新特性正式发布了!!!

1
0