故障现象
问题影响现象:无法登录
故障处理过程
11:12监控群收到响应时间异常告警
11:16测试查看接口响应情况,发现获取开关接口响应缓慢
11:16 xxx-pro出现平均响应时间超过2s告警,org服务出现平均响应时间超过100ms告警
11:18出现running low告警,主要出现在license服务
测试查看rds一键诊断,发现有异常会话堆积
11:25测试查看慢sql,发现凭证相关慢sql执行时间较长
11:31研发找到慢sql
11:34 研发分析慢sql发现有全表扫描
11:35 测试查看出现告警的license和org服务,发现license响应时间最慢的集中在获取开关接口上
11:38org服务响应时间恢复正常
11:39 测试查看1小时内license和org服务的ERROR级别日志,发现存在ice调用超时的情况
猜测可能和boss有关系
11:56 测试kill掉异常会话,但是系统还是无法登录
11:57 研发分析日志,发现是ice的连接超时,boss是通过http访问,志成也看了boss资源,属于正常使用,排除是boss异常引起无法登录
12:02 研发根据日志分析可能是org的bosssvrclient访问auth服务的ice接口出现问题
12:11 运维分析了org调用auth服务ice接口的链路,发现可以正常访问
12:12 运维重启license和org服务
12:16 系统依然无法登录
12:18 运维查看日志,发现有token验证失败的报错
12:20 测试查看报错日志,发现有grpc调用超时的异常
12:21运维验证xxx-pro可以正常访问credit服务
12:22运维开始重启xxxx-pro
12:32 xxx-pro完成重启,系统恢复正常访问
12:43 测试查看部分服务近3个小时的QPS,发现11:10左右开始有断崖式下跌
13:29 研发查看org、xxxx-pro和common-data平均响应时间,发现org和xxxx-pro在11:10-11:30时间段内有明显飙升,而common-data没有明显变慢
13:36 研发查看故障时间段org服务慢接口
13:41研发查看grafana监控,发现common-data和org有一台服务器load异常
查看慢调用的链路追踪,发现common-data调用存在没有正常返回的情况
这里的慢请求是去调用common-data服务的,但是没有看到common-data的链路,说明没有正常返回
common-data的10.xxxx.xxx.102这台服务器从11:11:05开始就没有处理完的请求了
xxxx-pro调用grpc超时报了很多次
运维告警群在11:18的时候有告警,对应的是common-data的10.xxx.13.xxx这台服务器
在12:12才恢复正常
这段时间内访问到xxxx.xxx.xxxxx 这台服务器的common-data接口的请求都出现了超时的情况
故障原因
common-data有一台服务器load出现异常引起插件无响应,而xxxxx-xxx依然有对这台异常服务器的ice和grpc调用,导致调用超时,系统无法正常操作
反思与改进方案
修复方案:
手动kill异常会话并重启license、org和xxxxx-pro服务
改进方案:
1.故障值班人员如果遇到特殊情况无法及时介入处理时需要提前安排好backup
2.目前暂时无法从根本上处理单台服务器故障未进行转移的问题,可以增加超时异常告警,短时间内超过一定数量的rpc调用超时需要在业务告警群中有相应的通知,告警方案需要补充到故障应急小组工作指南中
3.xxxx-data、organization等基础服务中的高频访问接口在客户端访问入口处把请求超时时间调小,需要根据接口的平均响应时间设置一个合理的超时时间