一次大促故障分析

来源:互联网 发布:擎洲广达软件电话 编辑:程序博客网 时间:2024/04/29 20:13

                      版权所有,允许转载, 请注明出处创建金融_玉龙  http://www.weibo.com/u/1872245125


故障简介:

活动即将在11:00:00开始系统在10:57:00左右流量急剧下降, 尝试访问首页, 发现无法显示, 多次重试后, 发现首页HTML内容有时可以勉强展示, 但是静态资源都无法展示。
11:15分之前, 三次尝试重启静态资源服务器, 无法恢复, 11:20左右系统自动恢复, 流量迅速攀升至系统故障前最高流量的2倍以上且平稳度过。
事后通过理论分析,和网络排查, 定位故障设为SSL加密设备, 故障代码为活动页和合同签署页的自动刷新JS





 

设备:

       F5 负载均衡设备;

       SSL硬件解析设备; 最高并发解析8000

活动前, 已经有几万到十几万客户打开了,活动页。 活动前QPS应该在160以下,即并发在160以下。

活动即将开始时, 已经打开的数十万活动页面, JS定时刷新一下页面。浏览器会并行加载多个资源, 即刷新一个页面会尝试建立多个连接。

高达13万并发连接, 超过活动正常流量峰值的659倍, 接入F5设备此时SSL解析设备无法及时响应, 即HTTPS连接无法建立。简单的说,我们给自己来了一次DOS攻击。

其中, 活动页面刷新的时间点采用了本机时间,并在特定情况下会死循环刷新页面, 加重了问题。

 

总结: 替换SSL解析设备, 下放SSL解析到服务器上, 便于横向扩展。 以后的活动促销时避免JS定时统一刷新,或无限刷新, 避免造成DOS攻击。还可以在活动开始时间上, 故意错开, 让每个用户的活动开始时间随机加上几秒, 让用户实际的活动开始时间错开。