云计算数据中心的网络测试主要包含虚拟化测试、安全测试、高可靠测试和性能测试四 个部分。前三者重点在于对数据中心网络的功能设计进行测试验证,性能测试则是度量整个云网络的关键,用以确认其能够提供的服务能力基线。云计算技术目前很 多应用在大型的高性能计算(超算)数据中心中,在此类数据中心内部,性能处于业务保障的第一关键位置。本文重点关注性能测试的部分,从测试设计方面进行探 讨。
测试设计
数据中心网络性能测试手段很多,业务仿真测试是最能体现实际应用情 况的测试方法。业务仿真测试往往需要利用大量服务器和存储设备,通过部署仿真应用环境来测试网络针对此类型应用的转发性能。但此方法受成本和测试复杂度影 响,一般只在超大型且应用较为单一的数据中心测试时使用,如百度/SOHU搜索业务仿真、QQ/MSN实时通讯业务仿真、石油勘探/气象预报计算业务仿真 等。
除了上述专用测试方法外,还可以通过测试仪器模拟一些基本的应用流量来测试其主要性能。此方式由于实施简便、通用型强,在数据中心 网络性能测试中应用较多。受当前整个Internet应用使用情况影响,测试仪模拟的网络应用以TCP的HTTP为主,有时会根据具体的实际业务情况添加 Mail、FTP和HTTPS进行补充,这种测试设计也符合当前云计算数据中心的实际应用情况。
测试环境
在测试数据中心网络性能时,通常使用成对的测试仪器端口,连接到数据中心网络两端,将整个网络视为黑盒进行端到端的性能结果测试。典型测试组网设计如图1所示。
图1 数据中心性能典型测试组网
图1中的数据中心网络结构采用典型的3层双冗余结构。核心层设备采用高端交换设备进行三层路由转发,其与汇聚层设备间通过OSPF动态路由协议互连,以 提供多路冗余保障,同时通过只发布缺省路由到汇聚层设备的方式来减轻汇聚层设备的路由压力;汇聚层设备作为模拟服务器设备的网关提供三层转发功能,使能 VRRP等网关冗余协议来保证双机热备,并通过VLANTRUNK方式与接入层设备相连;接入层设备部署为二层转发模式,通过MSTP协议确保多VLAN 环境下的冗余链路备份功能。
测试仪器通过多个接口分别与核心层设备和接入层设备连接,并模拟Client和Server进行有状态的流量转发性能测试。测试模拟的协议类型尽量与使用环境贴近,最常见的是使用HTTP协议进行基于L7的业务流量模拟。
另外为了确保数据中心测试的仿真度,还需要模拟大量的路由、VLAN和流数量。例如测试的为一个大型的企业云数据中心,则需要定义以下背景环境参量:
1. 首先设置背景路由,在核心设备上模拟发布1万条OSPF散列路由,其发起源为50个Router,路由模拟调配比例为NetworkLSA:SummaryLSA:ExternalLSA=1:3:16
2. 然后设置背景VLAN与模拟服务器,在汇聚层与接入层设备上部署8个MSTP的Instance,每个Instance中包含8个VLAN,使用测试仪器在每个VLAN中模拟100个HostServer,总共64个VLAN,6400个Server。
3. 最后构造测试流量,定义1万个Client源IP地址一一对应到模拟的1万条散列OSPF路由中,目的IP地址64个,分别为模拟的64个VLAN中每个VLAN随机抽取的各一个HostServer地址。总共为64万条IP测试流。
上述测试参数定义均可通过测试仪器配置完成。
当测试环境部署完毕后,即可使用测试仪器进行整网性能指标的测试执行工作。
衡量云计算数据中心的网络性能根据使用的网络设备不同拥有很多指标。常见的关键性能指标包括以下几项:
1. L4新建速率(CPS)
2. L4并发数(CC)
3. L7吞吐量(GoodPut)
4. L7响应时间(ResponseTime)
其中L4测试一般使用TCP协议构造流量,L7测试使用HTTP协议构造流量。下面就这几项关键指标的测试方法进行介绍。
L4新建速率测试
L4新建速率指通过数据中心中间网络每秒可以处理的TCPSession速率,单位为CPS(ConnectionsPerSecond)。
需要注意的是,这里的“新建”指的是一个TCPSession成功建立并关闭的整个过程,并不是单纯指字面意义上的连接建立速率。在常见的L4新建速率测试中,主要使用TCP80端口的HTTP服务进行测试。测试配置中,关键在于以下几点:
1. 将TCP关闭方式选择使用TCPFIN报文触发的4次握手关闭方式。此种方式最符合当前普遍的网络协议应用模型。在部分特殊业务需求的测试场景下可以采用TCPRESET方式进行快速会话关闭,以测出网络系统能够支持的极限性能。
2. 将TCP的会话关闭等待时间设置为0ms,既服务器端收到请求后立刻进行回应关闭,避免中间设备的表项资源消耗对测试结果的干扰。
3. 将HTTP的传输数据载荷设置为尽量小(常见为64byte),以加快测试仪表模拟的Client和Server报文交互速率,便于更准确地测试出设备能力上限。
4. 将每TCPConnection中的HTTPTransaction数量设置为1,减小不必要的测试干扰,得出更精确的测试结果。
5. 需要设定一定长度的相同新建速率测试持续时间(如3600s),以保证测试结果的有效性。
6. 在测试开始前记录网络中主要设备的CPU/Memory等关键性能指标,测试过程中和结束后对这些指标进行监控,实时了解整个网络的运行情况。
L4新建速率测试的结果将主要体现数据中心网络中L4-L7设备的CPU(根据不同厂商设备的具体可以指NP、ASIC和协处理器等进行TCP新建表项计算的处理单元)运算处理能力。其线性关系如图2所示。
图2 L4新建速率结果与网络设备CPU关系示意图
L4并发数测试
L4并发数指通过数据中心中间网络可以同时并发存在的最大TCPSession数量,单位为CC(CurrentConnections)。
对于L4并发数测试来说,尤其需要关注其上层协议的具体应用,一个Telnet连接保持1小时与一个HTTP连接保持1小时在协议处理流程上是有很大不同的,应尽量根据实际网络中的业务流量设计测试模型。以下仍以最常见的HTTP协议进行测试举例说明。
由于实际的网络模型都是在不断的进行TCP连接建立和关闭,因此并发数测试结果也要在稳定的新建速率下获得,而不能同时将所有TCP连接一起打 入再进行等待。过高的新建速率会导致中间网络设备的处理能力下降,从而影响到并发数的测试结果;而较低的新建速率则会导致超长的会话保持时间,也与实际模 型相背举例:期望的网络并发数为300万,使用1千CPS的速率进行新建,则需要将测试仪器的会话回应等待时间调整至 3,000,000/1,000=3000s才能得到接近期望的测试结果,而如此长的会话保持时间对网络中间设备来说属于并不符合实际网络业务模型的处理 方式。
因此正确的测试方法是,先测试出中间网络的极限CPS能力,然后取中间设备稳定运行时(如CPU使用率在60%)能够处理的新建速率,再根据并发数期望测试结果计算出测试仪的会话回应关闭等待时间,通过调整此时间测试出实际的设备并发数处理能力。
举例:先测试出的网络新建速率极限值为20万CPS,CPU稳定在60%时的最大新建速率值为15万CPS,期望的最大并发数为300万,则在 测试并发数时设置测试仪器的新建速率为15万CPS,会话回应关闭等待时间为20s上下调整,以确认网络能够达到的实际最大并发数。
L4并发数测试配置需要注意以下几点:
1. 根据网络L4新建速率测试结果,设置稳定的新建速率参数和会话回应关闭等待时间参数。
2. 可以适当调整TCP会话关闭方式,以减少中间网络设备压力,如采用Reset方式关闭。
3. 同新建速率测试一样,设置HTTP载荷为尽量小值(如64byte),并将每个TCPConnection中的HTTPTransaction数量设置为1,减少对测试结果的干扰。
4. 将整个测试周期时间设置为一个较长值(如3600s),同步验证网络的稳定性。
5. 测试前中后的整个过程中记录网络主要设备的关键性能指标,进行比较确认。
L4并发数测试结果体现了整网会话保持与表项存储的能力,与网络中L4-L7处理设备的内存大小有直接关系。这里的内存大小依据各个厂商设备实现的不同也指DRAM、接口内存和CAM等TCP会话表项存储单元容量。TCP并发数与内存使用大小的线性关系如图3所示。
图3 L4并发数结果与网络设备Memory使用率关系示意图
L7吞吐量测试
L7吞吐量指当前网络可以有效传输的最大HTTP数据量,也被称为有效吞吐GoodPut,区别于传统意义上的测试指标L3吞吐量ThroughPut,结果单位为BPS(BytePerSecond)。
L7吞吐量测试结果很大程度上依赖于L4新建速率能力,其间关系类似于传统L3吞吐量BPS(BitPerSecond)与网络设备包转发能力 PPS(PacketsPerSecond)之间的关系。在测试L7吞吐量的过程中,首先测得网络的新建速率,然后将新建速率测试结果乘以一定比率系数 (例如80%),作为L7吞吐量测试中使用的的稳定新建速率参数始终不变,测试时逐步提高HTTP有效载荷大小,通过观察出现HTTP连接出现失败前的有 效载荷最大传输速率,得到其L7吞吐量测试结果。
举例:采用的稳定持续新建速率为20万CPS,能够无失败传输的最大有效载荷值为500Byte,则系统的L7吞吐量为100MBPS(BytePerSecond)。
在L7吞吐量测试中还需要注意的是可以适当提高每TCPConnection中的HTTPTransaction数量,如采用1:10的比例, 这样能够进一步提高L7吞吐量测试结果。但需要注意采用多Transaction方式时,需要将测试仪器上的HTTP协议类型设置为HTTP1。 1,HTTP1。0协议不支持此种传输加载方式。
L7吞吐量的测试结果除了受L4新建速率的直接影响外,还会受到网络中各设备的交换架构、接口总线等元件单位间处理能力的限制,其测试结果也直接体现了整个网络的应用数据吞吐转发能力。
L7响应时间测试
L7响应时间指从客户端发起http请求,到得到正确数据响应所经历的时间,一般用来衡量中间网络的综合处理能力,单位为毫秒。
L7响应时间与L7延迟时间的主要区别是:延迟时间指客户端发出报文到服务器接收到此报文或反向发送接收的间隔时间;响应时间则指的时一个完整 连接的客户端于服务器报文来回交互过程时间。在数据中心网络中,响应时间可以更好的表现出整个网络对有状态的流量处理能力,在HTTP这种需要客户端与服 务器进行反复交互的应用协议使用中尤为重要。
响应时间的测试方法主要有两种:一种是基于真实服务器的业务响应时间测试,此测试结果包含了中间网络设备与服务器两部分处理延迟时间;另一种是 通过测试仪模拟服务器快速响应请求的测试,这种测试方法可以尽量减少服务器端处理延迟的影响,得到近乎纯粹的网络处理延迟时间。
L7响应时间测试要在一定的新建速率下进行,这样做也是为了尽量贴近实际网络情况。但此测试中的新建速率需要维持在一个较低的水平线上,最好是根据真实环境平均值设定,这是因为新建速率较高时会导致CPU资源占用较高,影响设备对连接的处理能力。
常用测试工具
使用专用测试工具测试数据中心网络性能时,可以采用软件与硬件两类。
软件测试工具指需要运行在例如UNIX、Linux和Windows等开放的操作系统及通用的硬件架构上,并且只需对现有系统做出微小甚至不做改动就能够完成测试任务的软件。
部分性能测试软件如下:
HTTP–HTTPLOAD,WebServerStress,LOADRunner,WebBench,WebStone,SPECweb99
MAIL–Loadsim,Medusa(MicrosoftExchange),
DB-BenchmarkFactoryforDatabases,Jetstress,DBstress
IPSAN–IOmeter,Iozone,Bonnie++,dd
硬件测试工具指使用单独的硬件设备配合装载在PC上的控制软件完成测试工作,其性能要远优于一般的软件测试工具,但相对的缺点是价格较高和可扩 展性较差(功能升级有时需要对硬件产品进行改变,成本很高)。基于数据中心以应用为根本的网络流量特点,通常采用支持L7应用的测试仪器进行测试。目前主 流的测试仪器厂商有Spirent、IXIA和BreakingPoint等。
在云计算数据中心网络性能测试中,如果需要更好的仿真业务应用,建议采用软件集群服务器安装测试方式;如果希望得到最大的极限能力,建议采用硬件测试仪器来进行测试。
结束语
在数据中心网络性能测试中,还有以下一些常用经验可以在测试设计和执行中进行参考:
1. 当测试模拟的流量越接近真实网络,测试环境就需要越复杂。
2. 永远不能通过测试设计去完全的模拟真实网络环境。
3. 没有任何两个测试环境是完全相同的,因此所有测试结果只有参考性,不具标准性。
4. 不同的网络环境体现不同的流量模型,最好的不见得是最适合的。
5. 数据中心性能测试结果永远向网络中性能最差设备指标看齐。
6. 所有测试之前一定先要进行测试工具的自测试,了解其能力限制。
云计算数据中心的广泛部署是一个持续渐进的过程,而基于云计算数据中心的测试是使其大范围推广的关键保障。做好云计算数据中心网络的测试设计和 执行,可以更好的了解当前网络设计的能力范畴,以便更准确的应对基于云计算技术的应用业务需求,为云应用提供更好的通道架构服务。
本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/