记一次mysql数据库sleep请求过多的问题

问题:后端响应慢,用户登录超时,充值异常掉单等

时间: 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)]

总结:

应用层

在访问的时候数据库访问报错,然后直接抛出了异常,这样可能导致了数据库链接没有能及时的释放掉,

再加上轮询接口一直在访问用户库压力大就导致了出现今天的结果

数据层

提前知晓市场的推广计划,做到未雨绸缪。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值