记一次日志打印差点引起的事故
发现问题
监控报警发现,机器的cpu大于80%,出现这个报警之后,我们立马放下手上其他的工作,去排查,为什么服务器的cpu突然飙高。
排查过程
去监控系统上看,是磁盘的IO突然飙高,如下图:
磁盘IO高第一个想到的就是在频繁的写日志。然后看这段时间的请求,拿着请求的traceId,去一个一个的查,发现有个请求的输出日志大概有600多M(读白:我去,是什么操作能打印这么多日志),如下图:
解决问题
知道是日志打印文件太大的问题之后,在找到这个traceId对应的代码,发现是批量发送短信、微信的功能,这次发送的人数有点多,里面很多日志都是重复打印了。那么也就有了解决思路,去掉一些没用的日志打印(读白:日志并非打印的越多越好),保留必须的。在上线观察一段时间,没在出现磁盘IO高的问题。
感想与总结
如果频繁的触发发送消息功能的话,说不定就会导致一个事故。经过这个事情之后,在代码评审的时候我都会特别关注打印日志的情况,避免类似的事情发生。
也可以关注我的公众号:程序之声
关注公众号,领取更多 资源 。
本文为博主原创文章,未经博主允许不得转载。