码迷,mamicode.com
首页 > 其他好文 > 详细

20191025-生产事故记录

时间:2019-10-25 16:45:44      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:数据库   导致   环境   navicat   阻塞   大连   应用服务器   异步   ica   

【现象】:EJF调用PLM的接口,短时间内出现大量下单请求,导致网络阻塞,数据库连接池达到上限,接口崩溃;

【环境】:服务器使用的是阿里云,centos7 + docker + redis + netcore,网络带宽5M,数据库最大连接数设置了3000;

【分析】:接口出现崩溃现象后——

1、检查了docker服务,正常,未挂;

2、本地使用 Navicat for Mysql 工具可以正常连接数据库;

3、检查应用服务器连接数据库,(发现无法连接,重启数据库服务恢复正常--昨天 & 正常可以连接,重启数据库服务仍旧异常--今天);

4、重启应用服务器,接口可以使用,但异常缓慢,后检查发现Redis服务为正常启动;

5、通过运维报告,峰值时段,数据流量超过了带宽上限 5M ,达到了 11M+--今天;昨天的峰值在 7M+ 左右,同样超过了带宽上限;

6、服务器上调用数据库也是走的外网地址,占用带宽;

【结论】:初步结论主要从两方面分析——

第一,带宽上限调高到了 50M,这样单个传输的最大值约在 50M/8 ≈ 6.25M,目前接口中最大数据量大约在 400 ~ 500 KB ;

第二,检查代码连接数据库是否正确,是否正确释放(这个没发现代码有啥不合理的地方);

【再论】:程序使用的是异步调用,如果短时间内大量高并发访问,带宽不足的前提下,很有可能导致传输拥堵。连接无法正常释放,新的请求继续开启新的连接,如此循环往复,这样可能就是导致连接数达到上限的可能原因。

 

20191025-生产事故记录

标签:数据库   导致   环境   navicat   阻塞   大连   应用服务器   异步   ica   

原文地址:https://www.cnblogs.com/lishidefengchen/p/11738545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!