第二篇:现龙在田
软件开发从和机器沟通的语言开始。Web编程一般比较常用的开发语言,有C、PHP、ASP、PERL、JSP等。语言的发展,也是经历由低级到高级发展。和底层打交道一般用汇编和C,和应用层打交道一般用PERL、PHP、ASP、JSP。软件开发语言作为一种生产工具,是生产力的最关键要素。软件语言的发展,迅速推动了软件工业的发展。
每一种语言都有最适合的应用环境,靠一种语言解决所以的问题是不可能的。现在大部分ATM机还是使用汇编语言,用汇编开发,效率最高也最稳定,ATM也没有很复杂的业务逻辑,所以用汇编是最合适的。假如用汇编写web页面处理程序,那难度是很大的,也是非常痛苦的。C语言小巧快捷,用来写操作系统和处理网络协议,最合适。
邮件系统有一部分是涉及到网络通信的,金笛邮件采用C/C++解决稳定性和效率问题,还有一部分是和人打交道的,金笛邮件采用PERL来开发。C++和PERL的结合,即可以保证系统的效率和稳定性,又保证上层应用的友好和灵活扩展。金笛邮件在多年以前,就已经考虑到软件这种发展趋势,在webmail层率先采用perl技术开发,如今在很多应用的背后,都有PERL的身影。实践证明,采用PERL开发的邮件系统,可以和其他的业务系统如OA、CRM、ERP、HR很容易整合,为其它业务系统提供基础邮件通讯支撑。
一、金笛邮件系统性能设计
衡量一个邮件系统的性能,主要看投递速度。决定投递速度的因素,除了硬件(CPU、内存)、网络带宽外,还要看服务器的并发投递能力,也就是系统的吞吐能力。如果一个邮件系统的吞吐能力不够,即使硬件很好,也不能充分利用,即使网络带宽足够,也不能有效利用。
邮件系统"吞"的能力强,"吐"的能力弱会造成邮件的大量积压,"吞"的能力弱,"吐"的能力强会造成邮件发送瓶颈。金笛邮件通过良好的系统架构设计,会重分利用硬件和网络带宽资源,在系统性能和功能方面,取得最佳平衡点。另外,通过一系列可控的参数配置,让管理员可以根据实际情况,对系统进行优化:
SMTP服务优化设置
POP3服务线程优化设置
为什么是方案测试?
之所以最初确定要进行"基于方案的服务器比较评测",是因为我们看到在实际的应用环境当中,用户对于硬件的关注力越来越多地转化为对整个系统或者实施方案的可用性、可管理性的关注,整体的应用方案涉及到了硬件系统上的应用软件,比如E-mail、数据库甚至大型的ERP、CRM等应用,所以,我们看到,目前的硬件设备提供商很紧密地与系统集成商合作,或者自己也充当一部分集成商的角色,提供给最终用户一整套的应用解决方案。另一方面,IA服务器产品在硬件配置上的"同质化"已经成为不可回避的事实,这样的事实导致各厂商都在同质化竞争中寻求差异化的生存,纷纷建立解决方案中心,以整体打包方案的形式给用户更贴身贴心的产品和服务。于是,厂商对于"解决方案产品"的提供能力、整体解决方案是否是针对某种应用的最优化、最有效的系统以及厂商们能够对整体方案提供的支持与服务,这些问题,对于用户来说,应该是最迫切关注的。而就目前很多测试实验室提供的单纯的服务器硬件测试的情况来看,用户无从知道整体的应用方案在应用起来时会是什么样的情形。
基于上面的考虑,我们《网络世界》评测实验室在年初制定测试计划时就提出了测试整体应用方案的大胆设想:我们希望征集到的应用解决方案,硬件不受架构、配置等的限制,也就是说,无论服务器硬件使用IA架构还是RISC架构,无论是配置几颗CPU、几块硬盘,应用软件也不做特别要求,只要能够实现我们要求的某种应用(如E-mail、Web、Streaming等),我们就将它置入我们搭建好的应用场
景中,考察其相关的性能和功能指标。在这样的设想基础上,我们确定了测试整体应用方案的全新的思路,并从E-mail服务器应用方案入手。
所谓方案测试,是指我们要求一定的应用场景,而厂商提供适合这种应用场景的整体应用解决方案——硬件+应用软件+服务等,我们搭建一个实际应用环境对整体的方案进行测试,测试的内容除了包括整个方案在应用环境下表现出的性能外,还包括特定功能上的一些验证性测试,比如整个方案的易用性、可管理性等。
二、E-mail服务器测试方法
本次测试分为性能测试与功能测试两部分。
测试工具采用思博伦通信(SpirentCommunications)公司提供的Avalanche2200。Avalanche2200模拟实际的用户发出向服务器的请求(包括SMTP和POP3),并根据回应给出具体的详细测试结果。它有以下特点:能够模拟成百上千的客户端对服务器发出请求;能够模拟真实的网络应用情况;可以产生20000个连接/秒请求量,足以满足测试的需要。
监控端安装了带SP2的Windows2000Server。测试环境如下图所示。两台被测服务器(软硬件配置均相同)直连,并且分别通过交换机(港湾的礖ammer24交换机)与Avalanche2200的测试端口连接在一起。为了方便管理,我们使用了AvocentKVM交换机,通过远程的方式就可以方便地控制多台服务器。
为了将测试环境和测试模型尽量模拟为实际邮件系统的运行情况,我们在测试方法上作了充分的考虑。第一,采用两台服务器建立的邮件系统。一台服务器只有本地投递而没有远程投递的情况,对邮
件系统的压力不大,而用户实际的使用情况肯定会包括远程投递的情况,因此我们进行了两台服务器的邮件系统测试。第二,采用多域测试。两台服务器分别配置独立的DNS服务器,并指定多域名(5个域
名)。第三,采用多账号测试。我们在每个域里建立200个账号,一共1000个账号。测试时,两台服务器的用户之间相互发送邮件,占总数的90%,同时,每台服务器内部的用户之间互发邮件,占总数
的10%。第四,发送邮件大小满足一定分布。发送邮件大小分别为:400、1000、2000、4000、10000、20000、40000和100000字节。具体测试过程由4个阶段组成,第一阶段是预热阶段,Avalanche发出的发送邮件请求量由0慢慢上升到10/s;第二阶段是逐步加压阶段,请求量逐步增加到510/s(此数值超过所有参测邮件系统的最高能力);第三阶段是维持阶段,请求量保持不变;第四阶段是下降阶段,请求量由最大值下降为0。最后得出服务器的最大并发数,同时还会提供成功百分比、往返延迟等结果。
POP3协议的各项操作有CHECK、LIST、RETR、DELETE等,每种测试方法与SMTP大致一样。本次参测的邮件系统都提供了账号安全保护功能,对于同一个电子邮件账户,只允许同时一个用户用POP3接收邮件,而进行压力测试,必须同时发起大量的POP3连接,因此,我们只是作了DELETE的验证(每个账号只登录一次进行DELETE操作)。
服务器接收到邮件以后只是存储到本地然后建立起索引就向用户发送"成功"信息,因此,用户什么时候真正收到邮件得不到反映。所以,我们设计了一个方法对账号究竟多长时间收到邮件进行了考察。我们自己编了一个程序,使用一台服务器上的100个账号(每个域使用20个账号)向另一台服务器上的100个账号发送1000封邮件,每封邮件长度为20K字节。发送完成以后马上对被发送账号进行检
查,得出收到邮件数目,然后在5分钟以后再次进行检查,如果没有完全收到,那么再过5分钟进行检查,直到1000封邮件都收到为止。每种测试都进行三遍,每遍之间服务器和测试仪均重启,结果取三次的平均值。
在功能测试方面,我们着重考察了安全性、多域管理以及邮件存储等方面,同时,还考察了系统运行平台、系统支持能力、用户服务能力、邮箱管理能力等。我们还对系统的管理、客户端的管理、整个
系统的易用性等几个方面进行考察。
三、为什么测试E-Mail应用方案?
在我们《网络世界》评测实验室前期对目前中端服务器(或者部门级的服务器产品)应用情况所作的调研结果显示:目前上述类型服务器的主流应用仍然是诸如数据库/文件服务器/E-mail/Web这样的传统应用,而其中E-mail应用是最普遍也是最典型的一种应用,所以我们的测试从构建一个E-mail应用方案的测试环境开始,考察整个E-mail应用方案在我们搭建的应用场景中所表现出的性能、可用性等,同时,也考察整套方案的功能上的一些特色以及厂商所提供的服务能力。
《网络世界》评测实验室在此次测试过程中秉承我们一贯公正、平等的原则,不向参测厂商收取任何费用,向所有厂商开放,并向国内外所有主流的服务器生产厂商发出了测试邀请。需要强调的是,此次的E-mail服务器应用方案测试是国内首次由第三方评测实验室组织的基于用户实际应用环境的整体方案测试,测试不专门针对服务器硬件,也不专门针对E-mail应用软件,而是考察硬件加应用软件的整体表现,为用户选购整体的应用解决方案提供有力的依据。此次测试共征集到了5个方案,包括Dell的PowerEdge2600服务器和北京春笛信息技术公司提供的金笛电子邮件系统组成的方案(以下简称Dell金笛方案);浪潮NP350服务器和中软网络技术有限公司提供的中软邮件系统组成的方案(以下简称浪潮中软方案);宝德Powermail功能服务器;方正圆明MR100A服务器和北京亿中邮信息技术有限公司的eYou邮件系统组成的方案(以下简称方正亿邮方案);浙大网新赞禾的ISP5320SHR服务器和其自主研发的Xnetmail邮件系统组成的方案。由于浙大网新赞禾提供的方案未能在我们测试的规定时间内完成我们所要求的配置,所以此次测试的结果只包含了前面所述的4个方案。
四、应用场景
测试中我们根据实际的E-mail应用专门搭建了一个实验室的E-mail应用环境,我们规定测试的E-mail方案应用在一个千人规模的企业中,E-mail应用软件包含1000个用户许可;我们规定提供服务器硬件的厂商需要提供相同配置的两台服务器,作为两台独立的E-mail服务器,我们既要测试出E-mail方案本地的投递性能,更要测试考察出在整个E-mail应用中占据绝大部分的远程投递(邮件转发)性能;此外,我们还规定了整套方案将应用于对成本价格敏感的中小企业中,所以我们建议整套方案的价格在10万元人民币左右。值得注意的是,此次测试征集到的方案不约而同的全部采用了
Linux平台,并全部采用了国内厂商自主研发的基于Linux平台的邮件系统,这当然是出于成本的考虑,相对于应用非常广泛的Exchange、Domino系统,Linux方案的价格优势实在是太明显了,不过从另一
个侧面也说明,经济实用的Linux平台已经慢慢开始应用起来。另外,此次参测的所有方案中,服务器的硬件配置几乎相同,基本上都采用了双路至强芯片,2.4GHz主频,1G内存,512KL2Cache以及3块36G硬盘做RAID5,这些配置都是对性能测试结果造成相当影响的因素。虽然硬件配置方面基本相同,但在系统级的优化方面各个方案略有不同,所以性能测试的结果主要取决于系统优化和E-mail应用软件方面。
此次测试,我们对参测的几个方案的性能、功能、易用性、价格以及方案提供厂商的技术支持服务能力、系统维护升级能力进行了全方面的考察,我们希望从各个不同的方面给用户、读者提供对E-mail服务器应用方案深入认识的真实可靠的线索。
五、E-mail服务器功能测试
在对此次测试进行总结的过程中,我们曾打电话给一些网管员,就目前邮件系统需要在功能上进一步完备的地方进行了采访,我们了解到,网管员们对邮件系统最关心的是其安全性、多域名支持方面以及邮件存储方面的问题,而在此次测试的E-mail应用整体方案中,我们看到,基本上参测的几个方案都很好满足了这样的需求。(参见参测方案功能列表)。
多域支持
所谓域,是指对于邮件系统来讲的每一个可以单独收发信件的单位。此次所有参测的方案都支持多域名分级管理,并且能够在基于浏览器的管理界面中进行多域的划分和对各个域进行管理,这对于网管员来说是一项很实用的功能,因为在目前企业级的E-mail应用中,有一个很大的需求是为不同的部门划分不同的E-mail应用的功能和权限。所有参测的方案都可以在管理上实现3级管理:系统级、域管理员级、用户级。系统级的管理具有最高权限,可以启动和停止服务,可以实现域的建立、划分等;域管理员级负责对于进行管理,包括域的大小、用户数等等。
多样的安全防范
在安全防护能力方面,Dell金笛邮件方案内嵌杀毒引擎,保证病毒库特征库的及时更新,及时杀灭病毒。另外,浪潮中软方案还提供系统级的入侵检测,进一步加强对邮件病毒的检测。
邮件存储所有参测的方案都支持跨物理磁盘的存储。
分布式、多模块的架构设计
此次参测的邮件系统采用了多模块的分布式的系统设计,系统的所有模块都可以进行分布式的配置,将每个功能模块安装在不同的主机上,这样的设计对系统整体性能的提高很有帮助,尤其是在系统对并发处理的能力方面与单一服务器相比提高很大。这种结构还提供相当大的灵活性,包括给用户提供灵活的模块配置,包括所支持的用户数量的灵活性。系统处理方面都采用多线程、多进程机制,并发处理邮件的参数动态可调。
技术支持能力
在整个测试过程中,我们希望方案提供商能够把我们测试人员当成最终用户,我们提出的各种各样的要求和问题能够得到及时的解决,这也是我们考察厂商提供方案能力和提供整体解决方案后服务实施能力的一个重要方面,可喜的是,我们看到,方案提供商在技术支持上做得比较出色,主要可以从3个方面体现:一是提供了丰富的文档支持,应用软件的技术白皮书、用户使用说明、问题解释等基本上都提供了文档下载,服务器硬件产品在网站上也有很详细的介绍;第二,在测试过程中,方案提供商(包括硬件提供商和软件提供商)都能够及时地解决我们提出的问题,敬业精神值得一提,只是工程师们对产品本身的了解掌握程度参差不齐,有的非常深入精通,有的则是可圈可点,用户当然希望为他们提供服务的是非常专业且业务能力强的工程师;第三,对于用户的系统升级方面的支持,几个方案提供商都能够提供,其中Dell金笛方案提供一年的免费升级服务,浪潮中软方案提供升级和更新、Bug修复服务。管理员界面几个参测方案都提供基于Web浏览器的管理员界面,管理员通过相应的口令进入Web页面对系统进行设置和管理。一般都包括设
置域、管理域、设置系统过滤、邮件列表、邮件广播等功能。域的管理一般都包括添加、删除、修改配置、密码、设置域的大小和用户数等等,进入各个域,可以对用户进行配置和管理。Dell金笛方案在进入各个域的管理中心后,可进行批量用户导入的操作,而其他的参测方案都需要在命令行中作批处理,或者也可以通过接口导入。方正亿邮方案在管理功能设置上,每一级菜单都对下一级的菜单设置提供详细的说明,包括有哪些参数设置、如何设置相关的参数等。
用户端的体验
能够提供基于Web浏览器界面的用户管理,是此次参测的所有方案的一个共同特点,当然,用户端除了可以通过浏览器来管理自己的邮件,还可以使用Foxmail/Outlook等来管理,因为都支持标准的SMTP/POP3/IMAP4客户端协议。
六、E-mail服务器性能测试
邮件系统的测试涉及到DNS的配置问题。在Windows系统中,安装DNS有专门的向导窗口,而在Linux系统下,我们看到,操作系统也带有DNS安装向导,在DNS选项中手动进行一些配置。方正亿邮方案和宝德的Powermail系统、Dell金笛方案都是在操作系统的DNS选项中进行配置。浪潮中软方案安装了配置DNS的图形化的工具,可根据图形化界面提示来安装。不过,从对DNS的配置来看,配置、维护Liux平台的邮件系统,需要对Linux有相当的了解,所以对网管人员的要求也相对高一些。
我们在邀请函中要求的参测邮件系统是定位在千人级的企业产品,在一个拥有1000人的企业里,使用手工的方式,估计每秒最大的请求连接数不超过几十,而我们测试的应用方案都达到了三位数,
它们在性能上满足千人企业绰绰有余。测试时,两台配置相同的邮件服务器直连,每台服务器建立5个
域,每个域建立200个账号,共1000个账号,邮件既有两台服务器之间相互发送的情况,也有每台服务器内部账号间发送的情况。我们采用思博伦通信公司提供的Avalanche2200测试仪器,同时向两台服务器发送SMTP(简单邮件传输协议)请求,考察邮件服务器瞬间提供SMTP服务的能力——最大并发数,同时也会得出成功发送邮件百分比、平均往返延迟等指标(详细内容见25版测试方法)。在整个测试过程中,测试仪向浪潮中软系统发送的邮件请求数目最多,平均为104099.3,方正亿邮发送的请求数目也很多,平均为87035.67;成功百分比一项中,宝德与方正亿邮的都很高,分别达到99.03%和97.95%;最大并发数是很重要的一个性能指标,最大的是方正亿邮的339,其次是宝德的315,这两个数值都超过其他解决方案很多;方正亿邮的平均往返延迟最小,为225.228ms,Dell金笛的平均往返延迟最稳定,每次的差别非常小,平均为228.453ms。(详细数据请见文末的图表)DELETE操作的结果是参测的服务器都能够将使用账号中的邮件全部删除。
用户接收邮件时间的检验结果是,Dell金笛方案在1000封邮件刚发送完成就收到321封邮件,5分钟以后全部收到;浪潮中软在刚发送完成收到384封,5分钟以后全部收到;宝德功能服务器在刚发送完成以后就全部收到;方正亿邮方案在刚发送完成收到863封,5分钟后收到878封,10分钟后全部收到。
我们此次测试重点考察了最大并发数、成功发送邮件百分比等指标,而用户通常的测试方法是在一定时间内通过服务器进行发送和接收邮件(一台服务器的情况下),得到发送和接收邮件的总数。我们认为许多性能的具体细节使用这种方法很难测试出来。比如,最大并发数反映了服务器在某时刻能够提供服务的能力。另外,我们进行的是"极限测试",即测试压力超过所有的邮件系统能承受的最大压力,因此我们得到的结果是极限情况下的数值。
一般情况下,邮件系统提供的性能数据都为本地投递的情况(即一台服务器中的用户向本机的其他账号发送邮件,或者是一台服务器中的多个域之间的用户之间收发邮件)。而我们的测试选择了更贴近企业用户的实际使用情况,进行两台服务器的测试,其中一部分邮件是本地投递的情况,如图所示。本地投递的情况不需要进行转发,不需要对SMTP请求的发起者进行判断,队列的建立都相对简单,因此可以达到比我们的测试更高的结果。我们的测试指标是两台服务器的指标。从测试过程来看,测试两台服务器要比一台的情况复杂许多,在所有参测的解决方案中,支持工程师很快就能将一台服务器配置好,使用其中的用户收发邮件都没问题,而配置两台服务器就不那么简单了,有的工程师花了很长时间才配置好。
由于参测系统在硬件配置上差别较小,因此,导致性能结果差别的原因主要在软件方面(即采用什么样的邮件系统软件)。对性能影响较大的因素主要有以下几个方面。邮件队列的建立方式邮件服务器将队列建好以后就向用户返回"邮件发送成功"消息,因此队列的建立方式自然会影响系统的性能。有的系统采用一个大队列,有的系统将一个队列分成多个目录。投递时间设置每个厂商启动的投递进程数会不同,当邮件服务器瞬间收到大量邮件时,以这些进程投递邮件,处理不了的就放入队列(这种方式还可以避免服务器受到垃圾邮件的攻击),有的邮件系统会按照一定的进程数不断调度队列中的邮件向外转发,有的邮件系统会等待一定的时间再处理队列中的邮件。如果投递时间很短的话,那么服务器就要在处理用户大量SMTP请求的同时进行邮件投递,会占用更多的系统资源,SMTP的性能也会受到一定的影响。邮件系统的"引擎"—MTA邮件传输代理(MailTransportAgent,MTA),如大家熟悉的sendmail、qmail、postfix等,是邮件系统的核心部分,是邮件系统的灵魂。因此采用什么样的MTA对系统性能会有很大影响。
存储系统磁盘性能以及RAID方式都会对测试结果有影响。磁盘性能的影响很容易理解,性能越高测试结果越好。另外,RAID方式也很重要,比如,RAID0、1、5等各种方式的性能有差别,操作系统与应用数据是否存放在同一RAID区域内也会有区别。
性能测试结果测试指标说明发送邮件的请求数:是测试过程中测试仪器向邮件系统发出的SMTP请求的总数,如果请求没有得到响应测试仪器不会发送邮件。成功发送的邮件数:是SMTP请求得到响应以后测试仪器发送邮件的总数。成功百分比:是成功发送的邮件数与发送邮件的请求数的百分比。
最大并发数:是整个测试过程中,系统成功发送邮件的瞬间最大值。对整个性能测试来说,最大并发数是最重要的指标之一,它反映了邮件系统瞬间提供服务的能力。
平均往返延迟:是成功建立TCP连接以后从测试仪器发出SMTP请求直到测试仪器成功得到服务器发回的"邮件发送成功"确认消息的平均时间(ms)。
七、DellPowerEdge2600+金笛邮件系统方案点评
Dell+金笛邮件系统方案使用的硬件平台是DellPowerEdge2600,硬件设计很有特点,全金属设计体现出敦实、稳重的感觉。6个64位、一个32位PCI-X扩展槽,6个硬盘位,使系统具有很好的扩展能力,冗余电源、风扇。
解决方案使用金笛电子邮件系统,系统采用防垃圾邮件设计。金笛邮件系统同时支持发信认证、黑名单和系统级垃圾邮件过滤功能,为用户邮箱提供三重保护功能。用户可以随时从国内外反垃圾邮件组织获得黑名单列表文件,导入邮件系统。金笛邮件系统黑名单功能支持模糊匹配,可以屏蔽一个域,也可以只屏蔽域内的一个用户。金笛邮件系统支持嵌入式杀毒和网关杀毒,配合网络杀毒软件和客户端杀毒软件,从一定程度上堵住病毒邮件的肆虐。数字签名和传输数据加密,基于先进PKI-CA的安全机制,采用标准的SMTP/SSL、POP3/SSL、S/MIME协议,满足安全收发电子邮件的需求,保证信息
传递的安全。为了保证可靠性,只有在邮件被正确地写入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。同时,此方案可选择捆绑趋势科技的邮件病毒防火墙InterScan。该方案可以随时掌握邮件系统的总体运行状况,能够获得邮件系统数据流量、并发进程数、邮件队列、邮件总量等信息,同时以图表形式动态生成周报、月报、年报,从横向和纵向把握邮件系统全局,防患于未然。