高并发Web系统的设计与应用

点赞:3090 浏览:7892 近期更新时间:2023-12-23 作者:网友分享原创网站原创

摘 要 :设计了高并发Web系统的软硬件框架,提出了HTTP并发数的测量和监控方法,给出了软硬件的配置和优化方案,最后以高考网上查分系统为例进行了应用.

关 键 词 :网上查分;并发;nginx;PHP

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)13-3049-04

通过网络对外发布信息已被政府部门普遍采用,但由于社会对一些热点信息(如高考分数)的极度关注,用户每秒数千次访问造成的高并发,会导致Web系统运行缓慢.因此需采用先进的软硬件架构设计Web系统,确定软硬件的最优参数,充分发挥软硬件的计算能力,合理决定软硬件的使用数量,确保系统的正常运行.

1.高并发系统

Web系统的并发一般指的是单位时间内系统与用户之间所有HTTP请求与响应的总和[1],随着用户每秒HTTP请求数逐渐增多,系统运行负载逐渐加重,系统每秒可完成的HTTP连接数逐渐减少.

1.1 软硬件架构

怎么写作器的php系统采用FastCGI结构,Nginx将php动态网页请求转发给驻留内存的php-fpm进程,php-fpm进程运行代码、连接Oracle数据库、返回结果给Nginx.php对缓存、数据库采用持久化(persistent)连接提高并发性能.

Cacti[3]软件每隔一分钟采集一次HTTP并发数、CPU使用率、互联网带宽等数据并绘制图形,实现对系统负载的定时监控.

1.2 HTTP并发数的测量和监控

1.2.1 HTTP最大并发数的测量

1.2.2 HTTP并发数的监控

2.系统设置与优化

2.1 系统设置

Linux、Nginx、PHP等软件的具体安装步骤、配置过程可见参考文献[5-6],epoll机制[7]是Nginx、PHP等软件实现高并发的关键技术,有关软件的参数配置范围并无现成公式可参考,数值大小跟怎么写作器CPU的计算能力相关.最优参数的寻找与HTTP最大并发数的测量是个互动过程,检测设怎么写作器的HTTP最大并发数为M,该文提出有关参数经验数值如下:

1)Linux中涉及高并发进程的用户对系统资源的使用上限:nproc为M、nofile为M、stack为M×4K.

2)Linux中TCP的syn、listen队列长度最少为M,TIME-WAIT状态连接数最大为M.

3)Nginx进程总数为CPU内核数的1或2倍,

4)Nginx每个进程的最大连接数为M×2

5)PHP-FPM的listen队列长度为M,静态驻留内存的进程数为32至64.

2.2 系统优化

系统优化目的是在相同硬件条件下,尽可能地提高系统HTTP最大并发数,实现用户对Web系统的快速访问.

2.2.1 页面长度与HTTP压缩传输

所有页面长度都应尽可能的短,在计算复杂度确定的前提下,网页的HTTP最大并发数与页面长度直接相关.

页面可采用HTTP压缩传输,减少对互联网带宽的需求.ab软件测试表明,启用Nginx静态网页压缩、PHP-FPM动态网页压缩可使长度大于5K字节的纯文字网页传输长度减小为原来的1/3左右,页面越大压缩比越高,但因压缩消耗了部分CPU,页面HTTP最大并发数下降1/4左右.

2.2.2 宽带和DNS

不同宽带运营商之间的网络互连较慢,系统可使用多个运营商的宽带以保证所有用户的快速访问,主要运营商的宽带可能需要多条.

域名可采用DNS视图、DNS轮询[8]实现:1、实现各宽带只对该运营商IP地址范围的用户提供流量,2、同运营商多条宽带之间流量均衡.

2.2.3 防火墙

将允许用户访问Web系统HTTP端口的规则设置为第一条,减少防火墙CPU的无效计算,因为防火墙采用最先匹配原则,根据数据包满足条件的第一条过滤规则决定放行还是阻塞.

关闭防火墙的入侵检测、防网络攻击等功能,测试表明,当HTTP并发数达到数百时,开启这些功能将导致防火墙CPU使用率为100%.Linux软件自带的iptables防火墙也要关闭.

2.2.4 负载均衡器

负载均衡器将用户HTTP请求分发给后台的多个怎么写作器,分发策略有最少连接数(Least-Connection)、源地址等方式:


1)基于最少连接数的策略可实现HTTP请求对后台怎么写作器的平均分配,但需应用系统解决不同怎么写作器之间的会话共享问题.

2)基于源地址的策略可以实现同一IP地址的请求被分发到同一台怎么写作器上,应用系统不存在怎么写作器之间的会话共享问题,缺点就是不同怎么写作器的负载可能相差较大,因为NAT技术使互联网每个IP地址的实际用户数可能相差较大.

2.2.5 Nginx

关闭HTTP的长连接(Keep-Alive),大多数用户对Web系统的访问是一次性的,打开长连接将导致高并发系统短时间内被迫保持大量tcp连接不关闭,反而加大了系统负载、降低了并发性能.

2.2.6 PHP

2)持久化连接用于php与缓存、数据库之间的数据交换.

高并发Web系统的设计与应用参考属性评定
有关论文范文主题研究: 关于数据库的论文范本 大学生适用: 在职论文、研究生论文
相关参考文献下载数量: 17 写作解决问题: 怎么写
毕业论文开题报告: 论文模板、论文小结 职称论文适用: 期刊目录、职称评中级
所属大学生专业类别: 怎么写 论文题目推荐度: 优质选题

2.2.7 Oracle RAC数据库

Oracle RAC数据库可实现数据库业务的负载均衡、提高系统可靠性,数据库的索引、SGA大小对访问速度也有较大影响[10].

3.高考网上查分系统

安徽省教育招生考试院从2007开始使用基于JBoss/Oracle软件的高考网上查分系统,投入的查分怎么写作器有十余台,多次发生在并发高峰时查分速度变慢问题. 2012年高考网上查分系统使用了本文前述的软硬件配置和优化方案,所有页面长度控制在5K字节以内,采用HTTP压缩传输.负载均衡器采用基于源地址的均衡策略,全省50万考生的成绩数据库大小约为130M字节,Oracle数据库的SGA设置为512M字节即可,数据库中作为查询条件的座位号、号创建索引.宽带、查分怎么写作器、数据库怎么写作器的数量由各设备HTTP最大并发数的测量和计算决定.

3.1 查分系统

3.1.1 功能需求

系统正式开放前,使用静态页面index.发布提示信息给考生,查分系统正式开放后,由信息输入index.php、分数输出out.php两个动态页面组成,考生在信息输入动态页面提供座位号、号、验证码,分数输出动态页面根据考生输入的信息从数据库中查出成绩返回给考生.

3.3 软硬件数量

防火墙的HTTP最大并发数决定了查分系统的HTTP最大并发数为1.02万.

在对单台怎么写作器进行HTTP最大并发数测量时,数据库查询引起的Oracle数据库使用率最大约为3%,4台查分怎么写作器同时运行引起的数据库怎么写作器使用率为12%,使用1台Oracle数据库怎么写作器即可,不需要使用Oralce RAC数据库.

查分系统以增加查分怎么写作器数量为代价使用HTTP压缩传输,将互联网带宽的需求减小为未压缩前的1/3左右,HTTP最大并发数时所需的带宽约为1.02万×5K字节×8÷3等于136Mbits,所以系统需使用2条电信百兆宽带,移动、联通、教育科研网宽带各1条,教育科研网、移动、联通的宽带用户少,预计各宽带的带宽可满足实际需要.

3.4 运行效果

4.结束语

本文设计的高并发Web系统架构,主要基于Linux/Nginx/PHP等自由软件,可根据硬件配置灵活调整运行参数,HTTP并发数的测量和监控方法简单可行,HTTP最大并发数使系统软硬件的配置和优化具有明确方向,可供各类高并发Web系统建设时参考.