1概述
1.1背景
本文的编写背景是目前机房服务器资源存在未充分使用的现象,为了合理分
配资源,现需要对服务器自身性能进行评估,探索一套评估方法,从而为后续资源合理分配提供依据。
1.2评测指标
简单来说,服务器硬件性能指标来自于测试对象,一般x86服务器的主要组
成有CPU、内存、硬盘、网卡等。针对单机,评测指标重点关注CPU、内存、IO、网络;对于集群,重点关注网络、高可用。
本文主要评测单机性能,指标如下:
CPU—计算能力
内存—延时、速率
IO—读写能力
网络—网络带宽
1.3工具概况
CPU主流评测工具有Linux平台的SPECCPU、linpack,Windows平台的Sandra。
内存主流评测工具有Linux平台的stream,Windows平台的Sandra。
IO主流评测工具有Linux平台的Iozone,Windows平台的Iometer。
网络主流评测工具有Linux平台的iperf、netperf。
其他一些对整体系统进行评测的工具就不再介绍了,例如SPEC系列、TPC基准系列。
2 CPU性能
2.1评测方法
关于Linux测试cpu性能,有3个重要的概念:上下文切换(context switchs),运行队列(Run queue)和使用率(utilization)。
业务运行中最关注的CPU项就是使用率,使用率是和业务负载强相关的,通常可以通过监控软件或Linux系统工具获取。
另一个基本评测值就是计算能力,包括整数、浮点计算,可以使用SPECCPU、linpack测试。
2.2评测工具
CPU使用率是平时最关注的性能项,采用系统工具或第三方工具都可以。具体工具不再详述。
CPU整数、浮点计算能力,是服务器发布必测项,但是对于客户却不太重要,客户关注的是业务运行时CPU的能力是否会成为瓶颈。评测工具主要有SPECCPU2006、Linpack:
SPEC CPU 2006包括了CINT2006和C FP2006两个子项目,前者用于测量和对比整数性能,而后者则用于测量和对比浮点性能,SPEC CPU 2006包括了12项整数运算和17项浮点运算。
Linpack现在在国际上已经成为最流行的用于测试高性能计算机系统浮点性能的benchmark。通过利用高性能计算机,用高斯消元法求解N元一次稠密线性代数方程组的测试,评价高性能计算机的浮点性能,测试结果以浮点运算每秒(Flops)给出。
3 内存性能
3.1评测方法
内存性能一般关注的指标是延时、带宽,测试方法有Windows下使用Sandra,Linux使用stream进行评测,可以得到当前内存的实际速率、延时。这是单独针对内存的测试方法,但在实际应用中通常对内存的评测是在压力、稳定性、性能测试时的监测内存的使用。
3.2评测工具
STREAM是业界广为流行的综合性内存带宽实际性能测量工具之一。随着处理器处理核心数量的增多,内存带宽对于提升整个系统性能越发重要,如果某个系统不能够足够迅速地将内存中的数据传输到处理器当中,若干处理核心就会处于等待数据的闲置状态,而这其中所产生的闲置时间不仅会降低系统的效率还会抵消多核心和高主频所带来的性能提升因素。STREAM具有良好的空间局部性,是对TLB友好、Cache友好的一款测试。STREAM支持Copy 、Scale 、 Add、 Triad四种操作。
4 IO性能
4.1评测方法
服务器的存储性能也就是指IO性能,通常评测的重点是各种数据块(512B、4K、2M…)下的读写能力,具体指标有IOPS、带宽、时延。测试原理是工具对存储加压也就是产生各种读写操作来测试整个IO的最大能力。
4.2评测工具
Iometer是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的最大IO能力、磁盘系统的最大吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。
IOzone主要用来测试操作系统文件系统性能的测试工具,该工具所测试的范围主要有,write , Re-write, Read, Re-Read, Random Read, Random Write, Random Mix, Backwards Read, Record Rewrite, Strided Read, Fwrite, Frewrite, Fread, Freread, Mmap, Async I/O。使用iozone可以在多线程、多cpu,并指定cpu cache空间大小以及同步或异步I/O读写模式的情况下进行测试文件操作性能。
5 网络性能
5.1评测方法
网络带宽不难理解,就是系统收发包时的最大流量,一般分为TCP、UDP两种模式。影响服务器网络性能主要是网卡的性能,其他如系统内核、驱动也是相关因素。测试方法一般需要2台服务器进行收发包,一端server,一端client。
5.2评测工具
Iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。利用Iperf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。
Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。
Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。