记录一次生产环境bug的调试

记录一次生产环境bug的调试

  • 先交代下问题以及背景:
            公司数据处理中的一个job一直跑的好好的,突然从某一天开始job执行失败,重启环境后又正常执行,简单查看问题日志,日志中出现大量connection reset信息,问题不间断出现,并且dev环境无法重现。

  • 初始思路
            一开始运维把问题当作一个简单的网络连接中断问题来对待,修复思路大概开发是对运算框架中如果出现了类似的connection中断问题添加对应的重连机制进行应对。

  • 实际问题
            随着时间推移,问题越来越频繁,甚至重启后job都会继续失败。于是需要对线上的实际情况进行进一步摸排。首先查看了业务代码,发现一些做join的表没有做合适的缓存,另外一些数据量非常大的raw data中的filter数据貌似也没有生效,导致上亿的数据直接被计算框架拉入了jvm中,而之前的运算又迟迟没有结束,大量的线程处于运算中。有了这个发现于是在任务失败后让运维拉取了jstat -gcutil状况,发现果不其然,一次任务执行触发了多次的fullgc ,因为生产环境使用的是G1,如此多的的full gc充分说明了问题

S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT

  0.00 100.00  65.99  41.09  91.41      -   3327  668.558    24 1436.491 2105.048

        如上所示一次f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值