筚路蓝缕,以启山林。抚有蛮夷,以属华夏。不鸣则已,一鸣惊人。
——《左传`宣公十二年》
服务出现fatal error: runtime: out of memory报错,导致服务挂掉,下面分享一个已经碰到的一种案例。
情况如图:
图中只截取部分,业务代码暂不展示,经排查,出问题的代码所在行是这样的:abc = append(abc, obj)
abc是一个切片。相信你基本有眉目了,没错,就是因为切片过长导致内存不够用引起的,是多大长度呢,当时崩掉时的切片长度打出来是2400万左右,这个数字大家不要死记硬背,因为每台机器上这个值是不一样的,因为机器每时每刻也运行有其它任务,剩余可用的内存肯定一直在变化中,所以即使是相同业务相同执行方式的代码,也可能是不同的结果;
因此需要充分评估代码的执行方式和数据量级影响,
版权归原作者 ProblemTerminator 所有, 如有侵权,请联系我们删除。