人人围网站宕机原因及解决方法分析

21 篇文章 0 订阅
17 篇文章 0 订阅

首先打个广告,我们的网站人人围,一个社交、新闻分发平台:http://www.renrenwei.com/

服务器架构:nginx+mysql+mongodb+php,用户登录信息session存在mongodb中


受攻击情况:

11-23号左右开始持续一周的DDOS攻击,有大量的北京、广东、海外的IP不停的刷网站的注册信息,两三天内注册用户数量达到7-8万,由于IP不同,所以无法用IP黑名单的方法禁止访问与注册


受攻击结果:

由于并发请求量太大,又受限于网站服务器性能,人人围网站一度瘫痪,数据库连接超时,mongodb存在大量过期session数据,垃圾数据超级多,导致session集合数据量达到千万级别,session的更新超级缓慢。


原因排查过程:

查看nginx访问日志,可以看到大量无意义的网络请求,查看mongodb运行日志,可以看到对session集合的读取操作超级慢,注销session用时甚至达到100S+


解决办法:

优化mongodb索引机制,重建索引并优化索引项

优化session回收机制,服务器加入定时清除session集合过期session值,清除包括空数据文档,过期数据文档等

修改前端验证码机制,加入更难识别的验证码



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值