服务器硬件系统性能评价
引言:
用户在评价一台计算机系统时,常常要考虑很多因素,如价格、服务、应用软件、质量、功能、升级能力、性能等,其它因素都较好把握,只有性能对于用户来说难以准确判断,计算机系统的性能评价也是信息技术的一个重要研究方向。当前,一般将计算机系统分成客户端桌面系统和服务器系统,对于PC、工作站等桌面系统来说,评价性能较为简单,查看它们的处理器主频、内存大小和总线带宽、I/O总线带宽、图形卡的指标,或运行流行的WinBench等测试软件,用户就基本能判断其性能是否满足需要了。服务器系统的性能评价要复杂得多,而SMP、CC-NUMA、Cluster、MPP等体系结构的大型计算机系统的性能评价就更加复杂了。
评价的基本方法
大部分服务器厂商都会提供基本的Benchmark数据,如SPECint95, SPECfp95, SPECWeb96, tpmC等,但是这些数据都是厂商用最好的系统、最佳配置,由专家精心优化得到的,常常和用户实际应用的性能大相径庭。作为一个普通用户,如何进行计算机系统的性能评价呢?下面介绍一些评价服务器性能的基本方法。
三阶段评价一般,系统完整的性能评价应分成三个阶段,即基本性能参数、核心Benchmark、实际应用。
基本性能参数测试是获取计算机系统的硬件和系统软件的重要性能指标,通过这些指标结合应用的特征可以大致评价出系统的总体性能。核心Benchmark测试是针对具体的应用类以最常用的模式操作计算机系统,评价系统在这类应用下的性能,能较准确地评价出用户可以得到的具体性能。实际应用测试是在较真实的硬件配置和软件环境下,用实际应用或简化的、规模缩小的实际应用评价系统的真实性能。三类测评是相辅相成的,性能评价不仅要获取系统的性能指标,更重要的是对性能表现能够进行解释,从而优化系统以使实际应用获得较好性能。
基本性能参数测试包括CPU、内存、I/O、网络、操作系统、文件系统、编译器、数据库的性能指标。CPU性能指标除主频、运算部件数、流水线长度、定点性能、浮点性能外,要重视一、二级缓存的大小和带宽。现代体系结构和编译器都是针对应用的数据局部性,努力提高cache命中率,二级cache性能尤其重要。标准Benchmark可以测出缓存操作(包括TLB)的延迟。在评测浮点性能时,尤其是RISC结构和向量结构,要关注应用程序能否利用编译器和优化数学库将浮点部件充满。
- 内存性能是至关重要而又常常被忽视的,性能指标包括内存总线数据宽度、存取频率、不同数据模式下读写操作的延迟和带宽。对于交叉开关类型的内存结构,要弄清分别到CPU、存储体、I/O总线的性能,计算密集型或I/O密集型应用对此有不同的要求。另一个重要的方面是内存性能的可扩展性,即随着处理器数目、内存容量、I/O总线数目的增多,分配给每个部件的内存性能应保持基本恒定,如一个处理器内存拷贝带宽180MB/s,四个处理器同时进行内存拷贝每个都能获得160MB/s带宽。
- I/O性能指标包括I/O总线数目和带宽、磁盘通道的数目和带宽、磁盘的性能(转速、寻道时间、cache大小等),以及它们的连接方式。I/O性能非常依赖于硬件实现和文件系统、数据库的实现,硬件峰值指标常常不能说明具体性能,虽有Andrew、Bonnie测试,到目前为止尚缺乏很好的I/O密集型应用性能评价标准,尤其是并行I/O方面。用户要区分文件系统性能和I/O物理性能,文件系统性能受各种缓冲、延迟写等策略的影响很大。
- 网络性能指标中除服务器方的TCP、UDP点到点的带宽和吞吐量外,还包括scatter(一对多)、gather(多对一)、bi-section(多对多)带宽,测试网络系统总的容量。对于有系统高速网络的分布式计算机系统,内部网络总容量更为重要。 #p#page_title#e#
- 操作系统是所有软件的基础,它的性能评价不仅仅反映系统的性能,还有助于我们调整系统配置和参数,以使系统更适合于具体应用。操作系统Benchmark能得到许多基本性能参数,而系统调用、中断、进程切换、线程调度开销、存储映射性能是十分依赖操作系统实现的,对特定应用至关重要。文件系统虽是操作系统的一部分,但具有特殊的重要性,主要指标包括读写带宽、文件缓冲区性能、文件操作吞吐量。石油应用十分依赖于文件读带宽,可用少量大文件、大数据块读取模式测得;Web应用依赖缓冲区实现性能,可用Lmbench中文件性能评价测得;NFS文件服务器依赖于文件操作吞吐量,可用Andrew Benchmark测得。文件系统性能受应用I/O模式、硬件配置影响很大,对评测结果要仔细分析。编译器性能对计算类应用最为重要,尤其是多条浮点流水线的系统,应用的性能取决于编译器能否很好地对应用源程序进行优化。用户评测时要选择合适的应用,以反映编译器的各项优化策略的能力,如循环交换、数据局部性、寄存器分配。好的编译器相当于给千里马配了一副好鞍。数据库性能指标较复杂,简单的性能评价包括Create, Index, Join, Scan等基本操作的性能,但无法反映出应用的真实性能。
系统性能参数需要专业知识分析,实际应用测试受软硬件条件限制,核心应用测试是较现实的方式,它较能真实反映应用的实际性能。厂商一般会提供SPECweb, TPC-C, TPC-D, Linpack值,可作为比较之用。要特别注意得到这些性能指标时的软硬件配置,如得到tpmC值时的服务器的处理器、内存、磁盘控制器、磁盘配置、客户端、网络、数据库、操作系统、中间件、用户数等的配置,还要关注$/tpmC值,以判定这样的构成和成本是否满足用户的实际情况。不同的SPECweb测试表示不同的应用模式,同时系统配置也至关重要。Linpack测试要注意问题的规模、内存大小、编译器、优化数学库或其它优化手段。理想的方式是按用户的实际情况让厂商提供测试环境,用户自行开发特定的核心应用测试,如计算类应用各行业都有典型的评测应用,例如,气象领域的MM5,石油领域的三维叠前深度偏移,数学领域的FFT、偏微分方程、特征值求解,化学领域的Guass98,生物领域的分子动力学等。另外,要注意评测系统的可扩展性,包括处理器、内存、磁盘、网络、分布式系统的节点增加对Benchmark性能的影响。
实际应用评测要求真实性,尤其是系统的配置,Benchmark的数据数量和运行时间可以缩小,但处理过程一定要真实,同时要有专业人员帮助调节系统的性能,同样,要关注系统的可扩展性和长期运行时性能的稳定性。
总结:
计算机系统的性能评价是非常复杂的,依赖于系统的多种因素和应用的特征。一个认真的银行信息中心在购买一台大型服务器前,可能要求厂商按真实应用进行两周不间断的Benchmark测试和性能优化。并行计算机系统的性能评价更是一个重要的研究方向。对于用户来说,有三点牢记在心,第一,系统性能要均衡,均衡也是一个好的计算机系统努力的目标;第二,要仔细分解实际应用的性能因素,没有适合所有应用的系统,一个应用也不可能在所有系统上都有好性能,抓住最重要的性能因素是至关重要的;第三,要作权衡与折衷,同时与价格、服务等其它因素一起折衷。