前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >应用GC长时间停顿分析

应用GC长时间停顿分析

作者头像
阿杜
发布2018-08-06 11:29:29
8670
发布2018-08-06 11:29:29
举报
文章被收录于专栏:阿杜的世界阿杜的世界

早上被报警叫醒,使用gceasy.io分析了服务器的gc日志,报告见:2017-05-28 gc.log报告

这份报告里明确得指出了应用的问题,即在2017.2.28 07:09左右发生了长时间的GC停顿,入下图所示:

gc报告问题

  1. 点击进入reduce long GC pause,这篇文章列举了几个可能引起长时间GC停顿的原因:
  • 高速的对象创建速率,报告显示我的应用没问题
  • Heap区域,年轻代较小;jdk 1.8只配置了Xmx和Xms相同大小,2048,没有指定-Xmn或-XX:NewRatio,可能有影响;
  • GC算法选择问题,我使用G1回收器:G1回收器适合高并发场景,应该没问题
  • Process Swapping,进程内存置换
  • 较少的GC线程
  • 后台IO阻塞,根据系统监控发现在同一时间IO延时、占用CPU都飙高,怀疑是这个问题。
  1. 点击进入fix this problem,这篇文章首先介绍了user-time、system-time和real-time的区别,由于多线程进行GC过程,因此在正常情况下,real-time应该小于user-time + system-time(例如:如果user-time + system-time为2秒,而有5个线程在执行GC算法,那么real-time应该为400毫秒)。但是在一些特定场景下会出现real-time大于user-time + system-time之和,如果在GC日志中出现多个这样的情况,原因可能是:IO飙高;CPU资源耗尽。

综上分析,可能是JVM参数或io问题引起的GC长时间停顿,IO问题可能性更高。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档