问题:后端响应慢,用户登录超时,充值异常掉单等
时间: 2022.02.18_19:30:28 至 23:30
问题:ECS后端响应超时10秒至30秒,http状态码有499和502异常。
定位流程: 检查CDN流量、SLB负载均衡、ECS后端、数据库和缓存Redis
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-konqoVIu-1645261639618)(images/wpsBCFE.tmp.png)]
ELK查询非200的时间段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dZP8StsE-1645261639620)(images/image-20220219170559642.png)]
一、检查CDN流量
CDN流量增加50%,问题不在于这里,跟市场的童鞋沟通这个推广量也属于正常。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQRQZS1f-1645261639621)(images/wpsBD00.tmp.jpg)]
二、检查SLB负载均衡监控正常
三、检查ECS服务器
zabbix和阿里云的云监控并没有负载报警,查看服务器负载,也属于正常
nginx后端响应时长在10-30秒,很多请求超时,数据库也无报警。
于是判断是由于web服务器无法应对流量,增加于是增加2台ECS数据,配置nginx和文件同步,加入SLB负载中问题依然没有解决。
四.检查数据库
RDS无报警,cpu和内存使用率都正常
总连接数有异常
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XvO427Zh-1645261639622)(images/wpsBD01.tmp.jpg)]
show full processlist;
查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TT2APlCo-1645261639622)(images/wpsBD02.tmp.jpg)]
搜索,查询更根本的方法,还是从以上三点排查之:
1.程序中,不使用持久链接,即使用mysql_connect而不是pconnect。
2. 程序执行完毕,应该显式调用mysql_close
3.只能逐步分析系统的SQL查询,找到查询过慢的SQL,优化之
有很多sleep连接,怀疑是后端PHP程序连接数据库没有正常的关闭,统计nginx最多的链接,发给后端修改。
修改地方:
1.修改错误的数据库配置,数据库名字写错了
2.暂时关闭请求量大的功能(uid判断用户是否被封的轮询接口)
上线之后sleep还是很多,可能连接数一时下不了,等待了半小时,手动kill掉sleep进程。
select concat(‘KILL ‘,id,’;’) from information_schema.processlist where user=‘apim_user’;
业务慢慢正常。
数据库增加配置
数据库RDS从2核4G升级为 4核8G,数据库新增一个从库,架构改为主从模式,代理读写分离。
四.redis正常
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wp19Xn97-1645261639622)(images/wpsBD13.tmp.jpg)]
告警邮件和短信
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OzQ2DF4C-1645261639623)(images/wpsBD14.tmp.jpg)]
总结:
应用层
在访问的时候数据库访问报错,然后直接抛出了异常,这样可能导致了数据库链接没有能及时的释放掉,
再加上轮询接口一直在访问用户库压力大就导致了出现今天的结果
数据层
提前知晓市场的推广计划,做到未雨绸缪。