门户网站架构设计方案A - 图文 下载本文

公开 内部公开 机密 绝密√

Nginx+2个TOMCAT的WEB服务器+缓冲

NO 客户线程端数 数 2 250 请求间隔次数 时间 150万 200万 0毫秒 25毫秒 测试服务器 Test1 Test2 Test1 Test2 Test1 Test2 Test1 Test2 Test1 Test2 Test1 Test2 Tomcat占用内存 0.2G 0.2G 0.4G < 1 0.4G 0.4G < 1 0.2G 0.4G < 1 0.2G 0.4G < 1 0.2G 0.4G < 1 0.2G 服务器负载 < 1 持续平均速度 时间 (条/秒) 64秒 23437 59秒 25423 19610202 秒 19410361 秒 3797915 秒 3847812 秒 12202459 秒 12412417 秒 5031993 秒 5055989 秒 1004498 0秒 1003498 8秒 完成请最大响应平均响应时求数 时长 长 150万 9993毫秒 0.04毫秒 150万 3472毫秒 0.04毫秒 测试结果 1 2 2 500 200万 9616毫秒 0.10毫秒 开启Nginx缓存后,400万次请求全部完成,分别200万 9608毫秒 0.10毫秒 有241和216个错包。 300万 9015毫秒 0.13毫秒 开启Nginx缓存后,600万次请求全部完成,无一10234毫300万 0.13毫秒 错包。 秒 300万 3018毫秒 0.40毫秒 开启Nginx缓存后,600万次请求全部完成,无一300万 3384毫秒 0.41毫秒 错包。 500万 3020毫秒 1.00毫秒 开启Nginx缓存后,1000万次请求全部完成,无一500万 3394毫秒 1.01毫秒 错包。 3 2 500 300万 50毫秒 4 2 500 300万 200毫秒 5 2 500 500万 500毫秒 6 2 500 500万 1000毫秒 1000500万 3020毫秒 2.00毫秒 开启Nginx缓存后,万次请求全部完成,无一500万 78毫秒 2.00毫秒 错包。 注:本次测试所用jsp页面仅100个字节大小,测试过程中带宽压力可以忽略不计。测试过程中曾尝试过使用100k大小静态页面,结果显示在千兆内网下,无论是单Tomcat亦或是Nginx+2Tomcat,请求速度最大均不超过1000条/秒,网络带宽使用已经达到800M,接近千M内网上限。因此,实际应用中,网络带宽对整个web服务的影响会非常大8/16/2014

版权所有,侵权必究All rights reserved 第33页,共39页Page 33 , Total39

公开 内部公开√ 机密

测试结果分析

系统参数的影响分析

worker_processes 参数对Nginx性能的影响

测试过程中分别设定worker_processes为8、4、2、1时发现,该参数对nginx性能影响不大,对服务器资源消耗也没有太大影响,相关资料显示,该参数的值最好跟cpu核数相等,能够发挥最大性能,本次测试nginx所在服务器为2颗双核cpu,因此最终测试设定为4。 MaxThread参数对tomcat并发性的影响

本次测试tomcat的 MaxThread参数设定为500,进行13000条/秒并发测试时,tomcat启动并发线程过多,将服务器cpu耗尽。分析MaxThread虽能够提高tomcat并发能力,但前提是在一个合理的范围内,要确保服务器负载不会因为并发线程过多而急剧升高,从而停止响应。 -Xmx最大内存值对Tomcat能够持续响应高并发的影响

持续高并发请求状态下,有6次测试是因为tomcat内存达到指定最大值导致响应变慢,直至内存溢出停止响应,因此,Tomcat最大内存对tomcat能够持续响应高并发请求有很大的影响,调整该值,应该可以增加Tomcat响应高并发请求的总数,进而延长WEB服务能够支撑峰值的时间。 各架构下的性能分析

1) Nginx+2Tomcat的最大并发性低于单Tomcat,Nginx+2Tomcat最快为8980条/秒,单

Tomcat为12986条/秒,分析可能是受nginx所在服务器性能影响所致。

2) 单tomcat在配置1.7g最大内存时,在持续超过1479条/秒的并发请求下,在稳定支撑约240

万次响应后,Tomcat内存达到1.7上限,之后Tomcat响应会急剧变慢,错包急剧上升。 3) Nginx+2tomcat架构下,2个tomcat分别配置1.7g最大内存时,在持续超过2900条/秒的并

发请求下,能够稳定支撑约540万次左右响应,之后两个Tomcat内存都会达到1.7上限,响应会急剧变慢,但错包情况并未出现。

4) 在Nginx+2tomcat,同时配置了缓存的情况下,可以达到1.5万以上的并发处理能力

评测结果

1) 单个tomcat的处理能力在500条/秒左右

单个tomcat能稳定支持每秒500左右的并发请求。

2) Nginx+Tomcat比单个Tomcat更稳定,不易出现错包,可以通过扩充tomcat集群(新增

tomcat服务器)来提升系统的并发能力

单个tomcat在超出并发能力的提求下,处理能力大大下降,并出现大量错包,而采用Nginx+2Tomcat架构在各种测试下,均未出现错包,但处理能力也会下降。

单个tomcat能稳定支持每秒500左右的并发请求,而Nginx+2Tomcat能支持每秒1000左右的并发请求。所以可以通过新加tomcat服务器来提升系统的并发能力,但在tomcat的总体

8/16/2014

版权所有,侵权必究All rights reserved

第34页,共39页Page 34 ,

Total39

公开 内部公开√ 机密

处理能力超过nginx的处理能力时无效。

3) Nginx+2Tomcat配置了缓存后,静态页面的并发能力不再受tomcat的限制,单个nginx

的并发处理能力能达到1.5万以上。

配置了缓存后,nginx+2tomcat的处理能力实测数据超过了1.5万次/秒,而单个tomcat可以支撑500次/秒,则从理论上计算一组Nginx+30个Tomcat集群可以支撑1.5万次/秒的并发处理。

注:为tomcat均分配1.7G内存。

配置选型

网络带宽

只考虑门户访问的带宽占用,后台管理页面等其他业务访问与门户访问相差2-3个数量级,这一部分网

络流量占用忽略。同时考虑网络带宽利用率(70%) 根据业务设计能力,每秒网络流量=WEB网站每秒钟访问流量

=(每次访问占用的带宽×每秒访问次数)/带宽利用率 =(200K*8*n)/0.7

注:一般门户的首页大小>1M、平均200K/页面,我们以平均值来计算。

并发能力 100次/秒 200次/秒 500次/秒 1000次/秒

占用的网络带宽 228 M 457 M 1442 M 2286 M 架构和硬件配置选型 硬件配置参考

序号 1 1.1 产品功能 主机设备 参考型号、配置 TPMC IBM System x3850 M2, 4个处理器,每处理器为6核,共计数据库服务器 24核。内存大小16G。SAS硬盘,硬盘大小587 GB。4U 机架,684508 集成双千兆以太网接口,两块千兆的光纤网卡。 IBM System x3850 M2, 4个处理器,每处理器为6核,共计24核。内存大于8G。SAS硬盘,硬盘大小587 GB。4U 机架,684508 集成双千兆以太网接口,两块千兆的光纤网卡。 IBM System x3560,1个Intel Xeon E5450处理器,内存大小2G,2U机架。 版权所有,侵权必究All rights reserved

1.2 WEB服务器 1.3 管理终端 32600 8/16/2014

第35页,共39页Page 35 ,

Total39

2 2.1 网络设备 负载均衡器

公开 内部公开√ 机密

2.2 防火墙 2.2 交换机 RADWARE应用负载均衡设备,型号:为ODS-504,有,4个可选的千兆位电端口,1G主内存,500M处理能力(最大可通过License升级为4G) CISCO ASA5520防火墙 并发连接:280000 网络吞吐:450 安全过滤:225MB 网络端口:4个千兆以太网接口+1个快速 用户数限:无用户数限制用户 VPN支持:支持 Quidway S3952P-EI 传输速率:10Mbps/100Mbps/1000Mbps 网络标准:IEEE 802.1Q、IEEE 802.1D 端口数量:48 接口介质:10/100Base-T、1000Base-X 传输模式:全双工/半双工自适应 背板带宽:32Gbps 光纤存储柜(EVA4100) 光纤交换机( 4/32B SAN Switch) 3 3.1 3.2 存储设备 光纤存储柜 光纤交换机 注:上表为硬件的参考配置,根据网站规模的不同,在初期可以不用硬件负载均衡器。服务器性能也可以作适当缩减,达到一定规模后硬件的扩容请参考“4.3 硬件扩容策略”

Web架构和硬件选型

并发能力 Web服务器架构 1) Apache+n个Tomcat(n>=2); 2) Nginx+n个Tomcat(n=2); 1) Apache+n个Tomcat(n>=2); 200~500次/秒 2) Nginx+n个Tomcat(n=2); 注:同时配置缓冲 服务器配置 备注 <200次/秒 2台web服务 2台数据库服务器 1台web服务器同时部署apache(nginx)和tomcat; 另1台部署tomcat。一起实现web负载均衡。 1台生产数据库,1台查询数据库 1台web服务器装apache(nginx); 另2台web服务器tomcat; 1台生产数据库,1台查询数据库 3台web服务 2台数据库服务器 2台缓存服务器 >500次/秒 Nginx+n个Tomcat(n>=2); 注:同时配置缓冲 1台web服务器装nginx; n台web服务(n>5) 其他web服务器tomcat;在web服务器>4m台数据库服务器 台的时侯可以考虑划成多个2台缓存服务器 nginx+tomcat集群。 2台负载均衡器 生产数据库用ORACLE的RAC集群,也可考虑多种数据库并存如用mysql. n台web服务(n>30) 组成多个nginx+tomcat集群(1台ngix+5m台数据库服务器 台tomcat),通过负载均衡器分流。 2台缓存服务器 数据库用ORACLE的RAC集群。 2台负载均衡器 第36页,共39页Page 36 ,

Total39

多个Nginx+n个Tomcat>1.5万次 (n>=2)组合; 注:同时配置缓冲 8/16/2014

版权所有,侵权必究All rights reserved