您的位置:首页 > 其它

服务器配置成功支撑了双11活动

2014-11-12 15:44 141 查看
服务器配置成功支撑了双11活动,圆满完成。

服务端架构:1台Apache作为代理,1台Tomcat提供抽奖活动服务,另外1台Tomcat提供用户认证服务。活动秒杀时间为11月11日11点11分。

1. 已记录的运行峰值:

1.1 已记录的网络连接和进程数据:

Apache:

网络连接达到8803,Apache进程达到997,峰值持续11分钟,从开始前2分钟到秒杀点后10分钟。这两个参数,从早上9点开始增加,到秒杀点达到峰值,随后在2个小时之后回复平时水平。平时水平,两个参数分别小于100。

Tomcat活动:

tomcat句柄数达到1156,网络连接达到3569,峰值持续11分钟,从开始前2分钟到秒杀点后10分钟。这两个参数,从早上9点开始增加,到秒杀点达到峰值,随后在1个小时之后回复平时水平。平时水平,两个参数分别是小于200和小于100。

Tomcat认证:

未记录。事先认为此服务器的负载不会太大,原因是此服务器仅仅作为后台管理和后续处理。及时性要求不高,因此没有作为监控目标。结果发现,这里其实不仅提供用户认证功能,还有调用外部服务进行后续处理的接口,由于对方限制,应用抛出了大量异常,造成日志迅速增加。好在日志增加到1.4G时,活动就结束了。

1.2 已记录的磁盘数据:vmstat

Apache:

bi峰值0,bo峰值1992。平时水平,bi平均值0,bo小于100。

Tomcat活动:

bi峰值4,bo峰值9972。平时水平,bi平均值0,bo小于100。

Tomcat认证:

bi峰值6176,bo峰值191020。平时水平,bi平均值0,bo小于600。

2. 配置项目:

Apache:

修改了Apache的prefork.c 的配置,设置启动进程数为50个,详细如下:

StartServers         50
MinSpareServers      50
MaxSpareServers     50
ServerLimit        1500
MaxClients         1000
MaxRequestsPerChild  10000

修改打开文件数到32768。

Tomcat活动:

修改了Connector的protocol,使用Nio。最大线程数设定为32000,如下所示:

<Connector port="8080"
URIEncoding="utf-8"
maxThreads="32000"
protocol="org.apache.coyote.http11.Http11NioProtocol"
socket.appReadBufSize="1024"
socket.appWriteBufSize="1024"
bufferSize="1024"
connectionTimeout="20000"
redirectPort="8443" />


修改打开文件数到32768。

Tomcat认证:

使用默认配置。

3. 并发用户数量

秒杀时刻,后台管理记录显示并发用户超过9000。

4. 总结

从事后记录,和当时的观测来看,整个活动过程很平稳顺利。服务器没有发生不能支持负载的现象。服务器的各项配置参数得到了验证。为今后开展类似活动,建立了基础,和参考的基准。

遗憾的是,没有估计到认证服务器的处理量,以及后台处理中,外部服务接口的瓶颈,导致Tomcat日志大小迅速增加。好在能够成功支撑到活动结束。

在活动结束后,立刻追加了监控并分割Tomcat日志的脚本。以防止今后出现类似问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: