时间推移一下回到2003年,我刚刚上班一年,那个时候在做一些预研课题的测试,我的老大交给我了一些工具让我研究下,好像是WebBench;NETBECH;SERVERBENCH和Bechmark Factory;我没有太在意在工作之余安装运行了一下,好像还遇到了很多的问题,然后是看长篇的英文版主,后来好像也解决了,呵呵大家可能想看问题的解决,因为我提到了测试工具不急,不说这些没用的了,我们开始服务器性能评测;
  服务器性能评测,这里说的服务器不是我们常说的那种提供Web服务,FTP服务的服务器软件,而是硬件服务器,要评测的也是硬件服务器可以提供服务的能力。这种测试一般在采购服务器的时候或者做选型的时候进行性能测试。那么如何进行测试呢?


        评测标准


  首先我们看一下服务器的评测标准,在服务器性能测评方面现行主要有两个标准机构:SPEC(标准性能评估机构)和TPC(事物处理性能委员会)。
  SPEC(the Standard Performance Evaluation Corporation标准性能评估机构)是一个全球性的、权威的第三方应用性能测试组织,它旨在确立、修改以及认定一系列服务器应用性能评估的标准。
  TPC(Transaction Performance Council,事务处理性能委员会)是由数十家会员公司创建的非盈利组织,总部设在美国。TPC的成员主要是计算机软硬件厂家,而非计算机用户,其功能是制定商务应用基准程序的标准规范、性能和价格度量,并管理测试结果的发布。


        SPEC标准性能评估机构
 

  SPEC服务器应用性能测试是一个全面衡量Web应用中的企业应用服务器性能的基础测试。在这个基准测试中,系统模拟一个现代化企业的电子化业务工作,如客户定购查询、产品生产制造管理、供应商和服务器提供商管理等,给系统以巨大的负载,以全面测试运行典型java业务应用的服务器性能水平。
  由于它体现了软、硬件平台的性能和成本指标,被金融、电信、证券等关键行业用户作为选择IT系统一项权威的选型指标。该测试是目前业界标准的、权威的基准测试之一,得到众多国际软硬件厂商如Intel、BEA、Oracle、IBM、SUN等的支持和参与。SPEC体系中广为人知的两个子项,是衡量CPU、内存性能的CPU2000和Web服务器性能的web2005。
  SPEC指标体系由Standard Performance Evaluation Corp.制定,目前主要包括针对CPU性能的SPEC CPU2000(已有CPU2006,但尚无数据)、针对Web服务器的SPECweb2005、针对高性能计算的SPEC HPC2002与SPEC MPI2006、针对Java应用的jAppServer2004与JBB2005以及对图形系统、网络和邮件服务器的测试指标。
  CPU2000 注重CPU
  SPEC CPU2000(已经有新的SPEC CPU2006,在2007年将逐渐代替CPU2000) 是一组针对 CPU 和内存的测试,它主要测试的对象是 CPU、内存,不测试硬盘、I/O 效率和网络等部分。SPEC CPU2000 由许多源代码程序组成,这些程序都从实际的应用(主要来自配置1~4颗CPU的工作站应用)中取出来的,例如 164.gzip 是gzip 压缩程序。这些程序区分成“整数”和“浮点数”两组。SPECint2000 是“整数”部分,而 SPECfp2000 则是“浮点数”部分。“整数”部分有 12 个程序,使用 C 或 C++ 语言,它们不使用CPU的浮点单元;而“浮点数”部分有 14 个程序,使用 FORTRAN 77/90 和C语言,这些程序的主要运算是浮点数的。
  SPECint2000 和 SPECfp2000 的结果,以执行时间为准。每个程序的执行时间和一个参考平台(Sun Ultra5/10 300MHz)相比,计算出其倍数。如果执行时间和参考平台相同,结果是100。如果只花了一半时间完成,结果是200。“整数”的12 个程序的结果,取其平均值,得到的是SPECint2000 的测试结果。“浮点数”的 14 个程序也是一样。
  由于SPEC CPU2000的测试程序都是源代码形式(以保证跨平台测试),所以编译器效率显得十分重要。SPEC CPU2000规定,测试结果有“Base”和“Peak”两种结果。“Base”测试中,对于编译时的佳优化参数有所规定(所有的程序都需使用同样的参数,且参数数目不能超过四个),而“Peak”测试则比较宽松。
  另外,因为 SPEC CPU2000的程序都是针对单CPU的系统设计,因此,在多CPU系统上,如果要测试多CPU系统的效率,则是采取同时执行多个相同程序的方法,这个结果是“Rate”。因此,同样有 SPECint_rate 和 SPECfp_rate 的测试结果。需要说明的是,“Rate”测试同时执行多个相同的程序,但程序之间并不会有关联,所以这是一种理论计算能力测试,并不代表实际并行计算能力。
Web服务Web2005
  SPEC web2005测试的原理是,通过多台客户机向服务器发出Http Get请求,请求调用Web服务器上的网页文件,这些文件从数千字节到数兆字节不等。在相同的时间里,服务器回答的请求越多,表明服务器对客户端的处理能力越强,系统的Web性能越好。
  目前SPECweb2005测试榜上,性能高的是2005年11月发布的Sun Fire T2000系统,此系统的基本配置为1颗8核心的UltraSPARC T1(1.2GHz)/32GB内存/3×73GB万转SAS硬盘/Solaris 10/UFS文件系统/Java2 Runtime Environment,能够同时响应14001个Http请求。这一性能比排行第二的系统高出77%。如果用户知道两套系统的价格接近,那么可轻易得知,采购Fire T2000作为Web服务器,性价比将比采购第二名的系统高出许多。
  不过SPECweb2005的缺陷也正在于此,它不像TPC-C那样要求厂商提供测试环境的总成本,对于实际采购的指导意义有所削弱。由于SPEC是一个非赢利的标准化组织,通过SPEC得到的测试值是一种严格标准化的测试结果,因此只要按照SPEC提供的测试原则和测试流程对系统进行操作,其终结果将能够得到业界主要服务器厂商和用户的认可。