2019 01 25上午
事故类型
全局故障
事故过程
- 09:10 日志监控收到多个工程、多个用户的 502 以及 504 报警
- 发现 worker 数跑满了
- 发现 MongoDB product 实例主节点 CPU 100%,有大量慢查询
- 重启了数据库和 Web 工程,没有效果
- 发现有一个查询语句走错了索引,
.find()
和.sort()
使用的索引不同 - 删除了
.sort()
代码,并添加了索引 - 09:33 报警恢复
事故时长
23 mins
事故原因
之前的数据库性能较好,切分了数据库后,暴露了代码层的性能问题
事故反思
从 CPU 曲线来看,前一天(24号)晚上 23:30 MongoDB CPU 已经达到了 100%,但是我们没有人工观察 CPU 曲线,腾讯云也没有提供检测 MongoDB CPU 的告警,导致我们没有提前发现这个问题。
解决思路
- 建议腾讯云提供 MongoDB 的 CPU 监控功能 工单链接
- 列举需要监控的指标,在重大底层操作后,进行人工观察