记一次日志打印差点引起的事故

  |   0 评论   |   0 浏览

发现问题

监控报警发现,机器的cpu大于80%,出现这个报警之后,我们立马放下手上其他的工作,去排查,为什么服务器的cpu突然飙高。

排查过程

去监控系统上看,是磁盘的IO突然飙高,如下图:

image.png

磁盘IO高第一个想到的就是在频繁的写日志。然后看这段时间的请求,拿着请求的traceId,去一个一个的查,发现有个请求的输出日志大概有600多M(读白:我去,是什么操作能打印这么多日志),如下图:

image.png

解决问题

知道是日志打印文件太大的问题之后,在找到这个traceId对应的代码,发现是批量发送短信、微信的功能,这次发送的人数有点多,里面很多日志都是重复打印了。那么也就有了解决思路,去掉一些没用的日志打印(读白:日志并非打印的越多越好),保留必须的。在上线观察一段时间,没在出现磁盘IO高的问题。

感想与总结

如果频繁的触发发送消息功能的话,说不定就会导致一个事故。经过这个事情之后,在代码评审的时候我都会特别关注打印日志的情况,避免类似的事情发生。

也可以关注我的公众号:程序之声
图片
关注公众号,领取更多 资源

本文为博主原创文章,未经博主允许不得转载。