中午的时候,后端两台iis服务器的并发连接数突然大幅度的增加,于是zabbix报警,客服通知网站某些功能挂掉了!
突增截图如下:
后端两台服务器iis并发连接数过多,导致nginx调度机也报警,并发连接数太多!
怀疑问题 :
1:被攻击
2:修改了代码,代码有问题
上面两个问题都被查证了,没有!
有人提出来添加web服务器,再添加一台机器分担负载,我猜测问题不在这里,
我怀疑是db慢导致iis 处理不过来,从而造成连接被积压,因为iis和nginx保持连接,从而导致nginx调度机也有太多连接数的报警!
于是查证codis和sqlserver,查证时发现codis挂了,19000端口不能set和get了,于是快速处理,处理后网站恢复正常!
后来还遇到一次问题,同时推送50w用户 ,最高并发为29k,如图:
这个时候我们的app不能打开,后面的所有web服务器负载都很高,每台机器的iis并发数都达到6k左右(我们总共有5台机器)
这时候后台的codis的连接数也达到2.1k了,开始我们认为是服务器的负载有问题了,后来查证是推送的页面问题,这个页面有太多的计算,
后来调整通过iis缓存里面取(其实那个页面是通过后端的codis计算得到的,尽管这个页面是动态的(对阵列表),但是在那一分钟所有人访问都是一样的,所以可以放在web缓存中),这样这个问题就解决了!
总结:
缓存太重要了,无论是iis缓存还是codis缓存都太重要了,抗大并发还是要靠它!
##codis 太关键了,数据库如果没有它帮忙,处理能力会下降很多,从而造成了请求的积压,一切问题都来了!
阅读(2137) | 评论(0) | 转发(0) |