采购选型 度量有方 服务器性能基准测试通鉴(3)

第三节:为Web服务找最好的平台

毫无疑问,现在企业正越来越深入地进入Web计算时代,而Web服务器也已经成为绝大多数企业不可或缺的平台工具。SPEC Web2005和TPC-W两个基准测试都可以帮助用户有效衡量Web服务器的性能。

SPEC Web2005有缺陷

作为SPECweb99和SPECweb99_SSL的继承者,SPECweb2005延续了SPEC的传统,为Web用户提供客观的Web服务器系统性能基准测试。

SPEC web2005测试的原理是,通过多台客户机向服务器发出Http Get请求,这种请求完全模拟Internet用户对服务器的访问,请求调用Web服务器上的网页文件,这些文件从数千字节到数兆字节不等。在相同的时间里,服务器回答的请求越多,就表明服务器对数据的处理能力越强,它的内存与CPU、PCI通道之间的传输带宽越宽,服务器的硬盘子系统和网络子系统传输速度越快,服务器的Web性能就越好。

基于快速发展的Web技术,与上一代基准测试相比,SPECweb2005基准包括许多新增强特性,其中包括:

测量并发用户会话。

相关动态内容:包括PHP和JSP实施。

使用两个并行HTTP连接请求页面镜像。

多种标准化的工作负载:银行业(HTTPS)、电子商务(HTTP and HTTPS)和支持(HTTP)。

使用If-Modified-Since请求模拟模拟器缓存效果。

文件访问与今天的真实Web服务器访问模式匹配度更高。

不过SPECweb2005也有缺陷–它不像TPC-C那样要求厂商提供测试环境的总成本,所以用户不能衡量单位计算所消耗的成本,因此对于用户的实际采购的指导意义相对弱一些。

 一个典型的SPECweb2005实验环境

TPC-W衡量电子商务环境

TPC-W是衡量服务器在电子商务环境中性能的另一项重要基准测试。

TPC-W表现了在一个站点上多个服务器和WEB应用联合工作,服务于仿真浏览器的请求,它关注的焦点是整个系统。

在一个TPC-W的测试中,主要的测试项目是每秒钟内完成的网络信息交换数量(WIPS),每WIPS的花费($/WIPS)以及下订单时的网络交换数量。另外在这些测试项目中,测试者必须提供所有主要子系统的性能参数,诸如处理器、内存、磁盘和网络等所有服务器审计运行中所需要的项目。

TPC-W的负载包含针对不同网页的处理,每一个网页都是在电子商务中必要的操作。例如,用户可以测试使用任何浏览器进行的主页浏览、查询、观看查询结果、购买产品、确认订单、检查订单状况,甚至于执行管理操作。

TPC-W提供一个从系统角度出发的电子商务解决方案,全面地体现独立操作系统性能。尽管有些方面还不完善,但是TPC-W确实为最终用户提供了许多平时得不到的原始数据和信息。

第四节:Java应用服务器的基准

Java从诞生的时刻,就因为它的方便性而注定了必定流行。

最近,一项全新的SPECjAppServer2004基准测试性能世界记录诞生了–配置了两颗四核核英特尔®至强®处理器、装备Linux操作系统的浪潮英信NF280D(Inspur NF280D)服务器,在运行带有BEA JRockit 5.0 JVM的BEA WebLogic Server 10时,创下了同类配置的SPECJAppServer2004基准测试世界纪录,系统处理能力达到了1538.65JOPS@Standard(每秒处理事务数)。

这个新的基准测试性能,对一个服务器来说,到底意味着什么?对企业又有什么意义呢?这先得从头说起。

今天,许多应用软件都是用Java编写的,它的优势很明显,就是经过一次编写后可运行在不同的操作系统平台上,有很大的灵活性。但是,不同的Java版本运行在不同的硬件平台上,会反映出不同的性能。如何判定不同硬件平台运行Java程序的效率,是Java使用者所普遍关心的问题,而SPEC jbb2004就是一项被广泛采用的Java虚拟机性能基准测试,它的前身是SPEC jbb2000。

SPECjbb2004是SPEC委员会制定的一套Java基准测试程序,用于测试Java服务器性能,但是并不考察到网络、磁盘I/O、和图形处理能力。SPECjbb2004模拟了三层客户/服务器模型结构,所有的三层结构都在一个JVM(Java虚拟机)内实现。

这三层结构模拟了一个典型的商业应用结构:第一层是用户(客户端输入);第二层是商业应用逻辑;第三层是数据库。在SPECjbb2004里,第一层是用进程或线程模拟客户系统的随机输入;由Java类和Java对象形成的Btree模拟第三层的数据库;在第二层里是对Btree数据库中的数据进行操作,其机构图如下:

SPECjbb2004基准测试借用了TPC-C基准测试的概念、输入产生、和交易模式。只不过,SPECjbb2004用Java类取代数据库中的表(Table),用Java对象取代数据库中的记录(Record)。SPECjbb2004主要关心的是第二层业务逻辑的处理能力,即考察用Java编写的应用程序运行在某台服务器上所表现出的性能。

SPECjbb2004规则中要求只运行一个Java虚拟机(JVM)。在整个测试中,JVM(Java虚拟机)、JIT(即时编译)、操作系统的内核处理、CPU的整型处理能力、Cache的大小、服务器SMP的线性扩展能力等因素都会成为影响测试性能的关键。不过,测试值的好坏更多的依赖于Java虚拟机的性能,而且受系统带宽的影响较小。在硬件平台不变的情况下,JVM版本的升级会带来性能几倍的提升。

SPECjbb2004反映的是Java虚拟机的性能,但在实际中该值常被用来说明服务器的扩展性,有些厂商甚至用它来证明服务器的性能是最优的、扩展能力是线性的。其实,SPECjbb2004基准测试完全是在内存中运行,不涉及I/O操作、网络操作等。如果用它来衡量服务器的整体能力和扩展性,这未免以点带面过于主观,TPC-C、Oracle ASB11i、SAP等这些基准测试更能贴近客户的实际情况,更能代表服务器的性能和扩展性。

第三回:专用基准测试探悉

世间万物,既有以广度取胜者,也有以深取胜者。

在基准测试体系中,随着企业级应用的不断扩展和深入,一些应用很广泛的软件平台逐渐衍生出了自己专属的Benchmark体系,以方便用户衡量这些软件平台在某服务器上的运行效率,这就是专用基准测试。

实际上,除了TPC、SPEC两大基准测试体系以及Linkpack等具有普遍意义的的基准测试以外,业界还创立了许多专用基准测试,用以衡量服务器运行某些专有应用的性能,目前较为广泛的包括SAP基准测试、Oracle基准测试、邮件服务器基准SPEC mail2001等。

这里,我们以流行度很高、企业应用种也很普遍的Oracle基准测试为例,来熟悉一下专用基准测试是如何来对服务器性能进行度量的。

Oracle应用标准基准包含两个主要的组件:在线组件和批处理组件。在线组件可执行多数用户都会频繁使用的通用用户界面(UI)流。批量流包含订单导入(Order Import)程序(大批量订单处理),主要用于按批量模式处理和导入订单。

Oracle应用标准基准理事会(Oracle Applications Standard Benchmark Council)是一个由多家硬件企业、Oracle产品开发和Oracle产品线事业群的代表组成的机构。

该机构推出的Oracle应用性能基准测试指标(Oracle Applications Standard Benchmark)是一种可比较的标准工作负载。硬件厂商可以使用这种基准测试对系统进行压力测试,使其能够满足较高水平的用户并发请求,并且在响应时间保持在可接受范围内的同时,获得尽可能高的用户数,使用户可以对不同系统配置上的Oracle应用性能进行对比。

用户数可测量系统能够支持的并发Oracle应用用户数量,并且在支持这一用户数量的同时,系统仍然能够将响应时间保持在预先定义的最大值以内。用户进程是由他们所执行的事务类型来定义的,而每个用户都将保持一个最低的每小时事务率。事务率和工作负载的组合都不会随着系统负载或响应时间的增加而发生变化。

Oracle应用标准基准可使用一系列选定的最常用Oracle应用模块来模拟真实的客户场景。有些事务的定义会对基准进行对比,这些定义是通过与实施顾问的协作而获得的,而且它们都具备OLTP、批处理和自助服务组件。

后记:测试与应用的关系

如果脱离实际,那就会沦为纸上谈兵。

实际上,Benchmark只能作为参考,因为它本质上是个应用,除了对硬件环境有要求外,与系统的编译、应用的优化都是有关系的,换句话说,所有的Benchmark都是基于最优化环境产生的,这一点用户心里一定要清楚。

经过近二十年的发展,Benchmark体系已经相当成熟了。尽管如此,相对于用户应用环境的千差万别,Benchmark是一个最优化环境中产生的"实验室结果",并不能完全反映到用户的实际应用中。

所以,成熟的心态,是科学地、全面地看待并应用Benchmark。

1. 基准测试作为专项指标,并不全面

任何一个基准测试都只能反映系统在某一方面的性能,而不可能反映系统的全面特性,比如SPECfp测试的是浮点能力,而不能反映系统I/O上的特性。即使是某些应用的专用基准测试程序(如SAP-SD),也同样不能完全反映用户的实际生产环境。所以在设备选型过程中,首先要做的是认真分析应用的特点,特别是在高负载下的性能瓶颈分析,以此采用相应的基准测试指标作为选型的重点。最能够反映服务器适用性的依然是实际(或仿真)应用的线上测试。

2. 考虑系统性能的线性能力

在多处理器系统中,随着处理器数目的增加,服务器性能往往不能同步线性增加,在OLTP、浮点等运算中,双处理器的性能往往只是单处理器的1.4到1.7倍,而4路MP服务器、8路服务器的线性能力会更弱。在英特尔®至强®(Xeon)及安腾®处理器当中,通过超强的并行能力及大量的板上资源,使得处理器的线性能力得到加强。在选型过程中,用户如果使用多处理器或多服务器并行的应用,应该对处理性能的线性能力给以足够关注,在基准测试报告中会给出不同配置下的结果。

3. 基准测试只反映性能,但不是全部

基准测试可以帮助用户判断系统的性能特征,但适用性本身不止是性能,特别是在大型系统中,其它一些因素,包括耗电量、散热、可管理能力等等,直接影响用户的拥有成本及维护难度,应予以充分考虑。

Tips 1:

基准测试是系统性能的良好指标,只要你能:

了解选择的基准测试测量对你重要的性能特性

保证测试的硬件和软件反应需求

保证性能测试的准确与公平

每个基准测试只能测量系统某个或某些方面的性能。尽量使用已有的基准测试,而不要建立自己的基准测试。基准测试数据仅仅是做出决定的一部分指标,其它方面,如可用性、服务、可靠性、策略也需要被考虑。

Tips 2:

对于将服务器系统用于科学运算的多数高性能计算机用户来说,在采购服务器的时候,对于厂商提供的SPECfp2000浮点运算基准测试要给与重点关注,而对于一般的商业用户来说,一个计算机系统的浮点运算能力强或者弱,并没有太大的实质意义,这个用户群体更应该关注注入TPC-C等在线事务交易处理性能。

Tips 3:

TPC-C虽然客观的反映了各个计算机厂商的系统处理性能,并且基准测试也在不断完善以更加贴近现实应用的交易环境,但是仍然无法与纷繁多样的各类实际应用完全吻合;而且参加TPC测试的主机系统都做了适当程度的系统优化。因此,在实际业务应用系统选择主机服务器乘载体时,必须考虑到多方面的因素,以最大程度的做到适合应用系统的生产需求。

Tips 4:

通过加大L2缓存数量和使用更快的内存升级系统,会有助于优化Web服务器的性能。因为Web服务器主要运行操作系统代码,系统应该使用最新优化版本的驱动程序和Web服务器软件

通过使用更大缓存尺寸和更快的内存升级系统,会有助于邮件服务器功能的发挥,同时削减内存延迟。

数据库服务器具有大量的数据共享,并需要足够的总线吞吐来高效运行。系统需要平衡配置才能将数据访问分散在系统内部不同总线上。使用带有最大缓存数量的处理器和相干性过滤器(如果可以用)会降低系统内引起相干错过的因素,并提高系统性能。

 Tips 5:

英特尔平台和基准测试

(1) (2) (3)