那天晚上
十一点半准备睡,手机响了一下。监控告警:站点响应超时。
想着可能是网络抖动,看了一眼就放下了。十二点半又来一条,这次是磁盘空间不足。
起来开电脑,泡了碗面。
排查
磁盘满,第一反应是日志没清。登上去一看,日志目录才 200M,不是这个。
继续找,发现是某个缓存目录里堆了几十万个小文件。清理脚本在跑,但没生效——因为脚本里写的是按天删除,而这些文件是同一天生成的。
删完之后磁盘空出来了,但站点还是慢。
再查,数据库连接数打满了。原因是清理脚本占用了大量 IO,导致查询超时,应用层又不停重试,越重试越堵。
面已经泡软了。
解决
重启服务,加了个连接池上限,把重试改成了带退避的。折腾到三点多,监控恢复正常。
面没吃完,倒了。
想说的
做运维的人容易有一种错觉,觉得系统是稳定的。但稳定从来不是默认状态,是有人在后面盯着。
每一次安稳的访问背后,可能都有人半夜起来处理过一次你永远不知道的故障。
后来我给所有清理脚本都加了磁盘阈值判断,也用掉了几个晚上。这些事不会出现在任何总结报告里,但系统确实更稳了。
这就是这行的日常。没有英雄时刻,只有不出事。
评论