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

服务器配置成功支撑了双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日志的脚本。以防止今后出现类似问题。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值