解决一起go 服务fatal error: runtime: out of memory案例

╰半橙微兮° 2023-01-15 15:28 276阅读 0赞

筚路蓝缕,以启山林。抚有蛮夷,以属华夏。不鸣则已,一鸣惊人。 ——《左传`宣公十二年》

#

服务出现fatal error: runtime: out of memory报错,导致服务挂掉,下面分享一个已经碰到的一种案例。

情况如图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hZWlhfOTk4Nw_size_16_color_FFFFFF_t_70

图中只截取部分,业务代码暂不展示,经排查,出问题的代码所在行是这样的:abc = append(abc, obj)

abc是一个切片。相信你基本有眉目了,没错,就是因为切片过长导致内存不够用引起的,是多大长度呢,当时崩掉时的切片长度打出来是2400万左右,这个数字大家不要死记硬背,因为每台机器上这个值是不一样的,因为机器每时每刻也运行有其它任务,剩余可用的内存肯定一直在变化中,所以即使是相同业务相同执行方式的代码,也可能是不同的结果;

因此需要充分评估代码的执行方式和数据量级影响,

发表评论

表情:
评论列表 (有 0 条评论,276人围观)

还没有评论,来说两句吧...

相关阅读