“ 本文作者是曾有4年开发经验,期间担任过多个项目团队的开发leader,现任Kindling开源团队的产品经理。作者曾因一次愚蠢的操作引发了线上P0故障,导致月工资扣了10%,年底绩效-1,连带上级leader也被扣钱,全公司邮件通报批评,大型社死现场。作者想通过自己这次悲催的经历,告诉普通开发同学如何实现在10分钟黄金时间内快速排障。”
如果你问我是否见过凌晨4点的太阳?
我只记得曾经在凌晨1点被生产环境的告警短信炸醒;
在凌晨2点被运维的电话喊醒;
在地铁上、演唱会上、火锅店里端着电脑查bug;
......
P0故障描述&排查过程
我相信很多很多一线开发同学对于上述场景深有感触,生产环境非乐土,各有各的苦,我当时背的这个P0故障现象是:晚8点我们电商平台开启促销活动后,客服收到很多用户反馈说系统响应特别慢,大量用户下单失败。我们看到监控大盘和日志,没有报错和告警,接口响应时间也没有什么波动,但是我们看到客户端出现大量超时报错,所以怀疑服务hang住了,重启服务后,客户端短暂恢复,5分钟后又出现timeout错误。
面对“精彩纷呈”的bug们,我们通常的常规操作是:
- 看监控大盘,基础资源(网络、内存、并发量)等等是否有异常
- 查日志
- 查数据库
- 根据场景看测试/