【影响范围】
全网不可用
【故障表现】
页面报内部服务错误
【处理过程】
1、9点40,业务团队后端服务监控群、大数据后端服务监控群等,出现大量报警,提示“1040】Too many connections”
2、查看各数据库服务器的数据库连接情况,发现10.0数据库服务器,数据库连接数已达到上限
3、查看当前服务器MySQL在运行的线程,发现大数据库账号的线程数达到919个
4、检查大数据可能导致异常的服务,发现只有服务A初始化数据会导致。停止该服务后,连接数恢复正常。
【原因分析】
1、主要原因
大数据初始化服务A,因只关闭数据库连接,没有关闭数据库连接池,且没有限制连接池数量,导致数据连接持续增加,最后达到最大值2k,因数据库连接达到上线而导致请求不来。
2、次要原因
数据库连接缺少监控,导致业务报警后,迟迟定位不到原因
大数据读的主库,扩大了影响范围,提升了故障等级
【其他】
业务报警8点40发生,用户9点36反馈,我们有56分钟的时间可以在用户无感知的情况下解决这个问题,但我们没有解决,质量管理部需要牵头规范解决这个问题,提升我们解决故障的效率。
【改进措施]
1、修复对应Bug
2、增加数据库连接数监控
3、10.0增加从库,大数据通过从库读业务库
4、确保资源层面监控无遗漏(服务器、数据库、中间件、网络一级运维角度看到的应用是否健康等)
5、梳理系统内可能存在的风险,并制相应制度和规范来消除风险