§1.引言
网络用户数量高速增长使任何单机的网络服务器都不能很好的满足用户需求,网络服务商不得不增加服务器的数量。但是增加独立服务器降低了系统的可扩展性能,增加了系统管理员的维护负担,而且多个服务器使用不同的入口,很可能引起负载的极度不均衡。而如果采用Cluster结构加上可扩展软件构成单一入口的服务器系统便能很好地解决这些问题。本文介绍了在曙光2000-II型大规模并行机上采用该结构实现单一入口点的Web服务器和Email服务器,评测了它们的性能特征,证实了该结构具有良好的可扩展性能。
§2.基于Cluster结构的Web和Email服务器
Cluster结构的机群系统是一组物理上通过局域网络或高带宽交叉开关连接起来的计算机集合,每个计算机称为一个节点。每个节点含有自己的操作系统,内存,硬盘以及网卡,是一个可独立运行的计算机系统。基于Cluster结构的Web或Email服务器就是在每个节点上都安装一套Web或Email服务软件,实现了Web和Email服务器的并行化,利用可扩展性软件对这些节点进行管理。
本文的评测结果是在曙光2000-II型机上获得。其中服务器节点的配置为双CPU的PowerPC主板(200MHz ,512M内存,9G硬盘,100Mb以太网卡),而客户端则采用双CPU(PowerPC),333MHz,1024M内存,9G硬盘,100Mb以太网卡的系统,在Mail服务中使用的数据库为Postgres。
§3.可扩展软件介绍
下面介绍支持多节点Web服务器的可扩展软件程序包PowerRouter和支持Email服务器的程序包MailProxy。
PowerRouter运行于系统的核心态,纪录了各个服务器的负载情况,并分派任务。当一个请求到达时,PowerRouter根据请求和服务器的负载,选择一个服务器,修改请求中目的地址为选中服务器,传送用户请求,后续的操作便可以在用户和服务器之间直接进行,如图3.1所示。可以看出,在机群系统上用PowerRouter实现的单一入口点不仅仅为用户提供一个虚拟的IP,屏蔽了其后庞大的网络机群,还起到监控系统和负载平衡的作用。这是因为PowerRouter是用户访问机群的唯一入口,机群内部各节点的任务都来源于PowerRouter的分派。因此,PowerRouter能够明了系统内部各节点的状态并实现适当的负载平衡机制,使机群Web服务器能够具有很高的性能。
MailProxy作为邮件收发的代理,包含POP3代理和SMTP代理两部分,还包含一个数据库,记录所有用户的名称以及为该用户服务的服务器。当用户提出Mail请求时,MailProxy首先根据用户名称查询数据库,得到合适的邮件服务器,并在用户和该服务器之间传递信息。和PowerRouter不同,在交互过程中,MailProxy始终作为用户和Mail服务器之间的中介存在。在用户看来,只有MailProxy的地址可见,多个Mail服务器的地址被屏蔽。如图3.2所示,由于MailProxy直到该次Mail操作结束之前不会释放资源,因此占用资源较多,时间也较长,于是一个MailProxy不可能为过多的Mail服务器服务。如果系统具有较多的Mail服务器,则必须设置两个甚至多个MailProxy。在这种情况下,为了继续保持Mail系统单一入口的特点,在MailProxy之上就需要增加一个PowerRouter层。由PowerRouter首先在多个MailProxy中选择一个为用户服务。
§4.大型Web服务器的性能评测
§4.1 评测工具的选择
基于HTTP协议的评测软件,现通用的有WebStone和SpecWeb99两种。两者都采用客户/服务器模式,但是WebStone 目前还不能支持HTTP的POST操作以及HTTP/1.1,并且WebStone得到的结果表示的是在给定文件集下,每分钟能获取的页面数目,而SpecWeb99表示服务器能够支持多少高质量的连接。随着网络上各种诸如视频点播等要求高质量业务的开展,SpecWeb99提供的结果相对用户来说更为重要。基于以上原因,我们选择了SPEC(Standard Performance Evaluation Coporation)的SpecWeb99作为Web服务器性能评测工具。
§4.2 SpecWeb99简介
SpecWeb99假设用户数据传送在一条带宽为400Kb/s的线路之上,用户收到数据后根据传输的数据量,可以得到在400Kb/s的线路上传送这些数据应该花费的理论时间,如果传输的实际时间比理论时间要小,则客户端睡眠两个时间的差值。例如用户接收600Kb数据历时1秒,根据假设,在400Kb/s的线路上传输,理论上应该费时600/400=1.5秒,因此在接收该数据之后,客户端应该睡眠1.5 - 1=0.5秒。在这种情况下,如果客户和服务器之间的连接对各种请求的平均带宽大于320Kb/s,则称为“顺畅连接”(Conforming Connection)。SpecWeb99就是评测服务器最多能支持多少“顺畅连接”。
SpecWeb99的文件集采用4个类别,大小分别为0-1K、1K-10K、10K-100K和100K-1M来模拟网络上大小不同的网页,它们在评测中比例为35%、50%、14%和1%。
§4.3 评测结果
对单一节点构成的Web服务器,在客户端和服务器直接交互的情况下,SpecWeb99的评测结果为258,而在使用了PowerRouter中转之后结果降低为256,这说明PowerRouter使得单节点Web服务器的性能降低了0.8%,可以看出PowerRouter对单节点系统性能影响很小。
对1、2、4、8个节点做成的Web服务器所得到的数据如下,其中的理论值为单节点直连情况下的结果乘以节点的数量。
由图4.1可以看出,多节点Web服务器的性能基本随服务器数量的增加而线性增长。说明Cluster系统加可扩展软件确实能为大型Web服务提供比较优秀的扩展性能。
同时,从图4.1中也可以看到,当采用8个节点作为Web服务器时,系统性能比理论值下降了13%,这主要是因为PowerRouter在连接数量扩大的时候,每个连接建立的平均时间加长,而且为了适应服务器节点的增加,客户端的数量也必须随之提高,在它们都向有限带宽的PowerRouter(本系统中为100Mb网卡)建立连接时,冲突的可能也增加了,这些都导致了系统性能的降低。当服务器数量进一步扩大的时候, PowerRouter很可能就成为了系统的瓶颈。此时可以采用的解决方案是提高PowerRouter机器的配置,使用更高级的机器,更换更高速的网卡等等。
根据得到的数据,8个节点作成的服务器,可以支持2064个“顺畅连接”,每个顺畅连接至少为320Kb/s,假设用户和服务器之间连接为100Kb/s(国内的通常情况),每个连接持续1分钟,则该服务器每天可以支持的点击数为24 * (60/1) * (320 / 100) * 2064 ≈ 1千万。
§5 大型Email服务器的性能评测
§5.1 评测工具介绍
由于在国内国际上,还未见成型的Email服务器性能评测软件,而SPEC公司的SpecMail2000还在开发之中(http://www.spec.org/ 2000年1月23日)。因此我们开发了基于SMTP和POP3协议的Email服务器性能评测软件。它也采用客户/服务器模式,客户端尽可能地向服务器发送POP3和SMTP请求。它定义 一次“MAIL操作”为一次成功的POP3操作加上一次成功的SMTP操作,最后得到的是系统在一个小时之内能支持多少次“MAIL操作”,反映了系统的峰值结果。
为了得到稳定的,最能反映服务器性能的结果,对发送和接收信件的长度作了大量测试,在使用1K、2K、4K、8K、16K等不同长度的信件分别在1、2、3、4个节点作成的Mail服务器上得到的测试结果如图5.1所示。从图中可以看出,信件长度的变化对整个系统的性能影响不大。这是主要是因为MAIL操作中大量的时间花费在用户与Mail服务器之间喋喋不休的交互上了,而信件处理占用的时间相对较小。通过各值的比较和反复实验发现,当信件长度为2K的时候,系统测得的数据最为稳定。因此把收发信件的长度定为2K。
为了避免长时间等待,缩短评测时间,我们给POP3和SMTP操作分别设置了超时时间。由于SMTP操作的时间比POP3要长,因此把SMTP的超时时间定为POP3的两倍。在使用1个节点做成的Mail服务器,让客户端创建96个线程模拟96个并发用户同时对Mail服务器操作时,得到的在一小时之内的超时操作的次数如图5.2所示,可以看到超时的时间从15s/30s增加到30s/60s时,超时次数下降250左右,而继续增加超时时间却下降不多,而且过多加长超时时间则必须使评测时间相应加长才能获得稳定可信的结构。基于上面两点的考虑,我们把POP3操作的超时时间定为30秒,SMTP为60秒
§5.2 评测结果
对单个的Mail服务器,在不采用MailProxy中转时,其峰值速度为每小时能进行29091次“MAIL操作”,而通过MailProxy中介后为27634,可以看出MailProxy使系统性能下降了5%。
为了使MailProxy不成为系统的瓶颈,必须得到MailProxy所能支持的Mail服务器地数量。通过实验,得到的数据如下:
以下评测结果,是在Mail服务器的节点数量为1、2、4时采用一个MailProxy,当节点增加到8时,加一个MailProxy,并增加一级PowerRouter来保证系统的单一入口,结果如下表所示:
从图5.4可以看出,采用MailProxy加PowerRouter技术对单一入口的Mail服务器具有较好的扩展性。同时,我们看到当服务器节点增加到8时,系统性能下降10%,主要是因为PowerRouter增加后,系统增加一级延迟,操作的增加对数据库访问也相应增多,这也会增加一些延迟。如此可以得到, 8个节点组成的Email服务器,如果每个用户每天收发一封信的话,则系统每天可以支持232728*24≈5百万用户的访问量。
6.结论
通过测试可知道,Cluster结构加上可扩展性软件能够提供良好扩展功能的Web和Email服务器,能够适应越来越多的网络用户。但是当节点数目增加到8时,Web和Email的性能都比理论值下降10%以上,这下降的10%目前还不能定量地分配到各个影响性能的因素上,还需要进一步的研究。
参考文献:
[1]: ZHAO Xiao-Fang and others: Analysis and application of the self-similarity in network traffic¬——The performance test of clustered WWW servers with a single entry point, Journal of Computer Research & Development, Sep 1999, p1032-1036
赵晓芳等:网络交通自相似特性的分析及应用——具有单一登录点的机群网络服务器的性能评测,《计算机研究与发展》,1999年9月,p1032-1036。
[2]: SpecWeb99 : Standard Performance Evaluation Coporation , June 1999
[3]: RFC2068: Hypertext Transfer Protocol – HTTP/1.1 , Networking Group, Jan 1997
[4]: WebStone: The First Generation in HTTP Server Benchmarking, Gene Trent , Feb 1995