本篇主要介绍除RFC2544四项指标外的其它指标的测试方法。其中的性能测试项主要来源于RFC3511中的定义,并根据实际需求,更新或舍弃了部分指标项。
目录
本系列分为以下四部分:
- 简介及性能指标介绍
- RFC2544四项指标测试方法
- 其它指标测试方法 - 本篇
- 测试工具、注意事项及经验总结
术语介绍
文章中会涉及到一些术语,现总结如下,供参考。
- 性能测试,对产品负载压力承受能力的测试。
- RFC,互联网及软件等的一些标准,基本的互联网通信协议都有在RFC文件内详细说明。
- 网关类产品,部署作为网关的设备及软件。
- IDS,入侵检测系统
- IPS,入侵防御系统
- UTM,对防火墙、IDS、IPS三个的综合,可以比较全面的进行管理。但是UTM通过一台物理设备集成大量功能,导致了应对大量数据的时候效率会下降,同时存在设备损坏导致全面崩溃的可能。
- NGFW,下一代防火墙,安全设备类产品未来的发展方向。
- 被测设备,devices under test,测试设备。
其它性能指标测试方法
以下主要包括CPS、TPS、HTTP吞吐、TCP最大连接数及其它性能指标的测试方法。
TCP每秒新建(CPS)
CPS测试的目的是确定最大的TCP连接建立速度。在RFC3511文档中对TCP每秒新建的测试方法进行了定义,同时也明确了测试过程中得参数设置。但在实际评测或客户验证时,对于CPS的配置却有一些出入。这里需要我们注意的事项请参见下列说明。
- TCP每秒新建的参数配置,应根据客户或评测机构的实际情况进行配置。
有的客户在测试CPS时,只关注TCP层的建立速度,使TCP连接建立成功即可,此关注的实际是TCP连接三次握手的过程(SYN,SYN ACK ,ACK),而且连接处于OPEN状态。而有的客户关注的是TCP的完整链接状态:包括三次握手建立、持续和关闭;而且在关闭过程中,又可以选择发送TCP FIN或者RST报文的方式。因此,在测试CPS前应与客户沟通测试的参数设置。 - 在RFC3511文档中,描述了在测试CPS时,采用HTTP1.1的协议,并且响应Get请求。
而在有些评测机构中,在测试CPS时确实会采用HTTP1.0甚至TCP或其它基于TCP的协议进行测试。无论是否采用HTTP协议,对于CPS的测试过程基本没有影响,只是多了一个GET请求和应答。但传输的文件大小将会占用被测设备很大的系统资源,从而导致测试结果偏小。在RFC3511中,没有明确应答数据的大小,所以这里我们可以设置为1byte甚至更小。 - 在测试过程中,应采用反复搜索的方式,以确定被测设备可以接受的TCP连接的最大请求速率。测试周期建议在10分钟以上。
- 如上文所述,基于使用协议的不同,CPS可以分为L4(传输层)CPS和L7(应用层)CPS。而且大部分的厂商和客户都基本认同这两种CPS的叫法。
HTTP的每秒处理事务数(TPS)
TPS是指最大HTTP传输速率,考察被测设备的应用层处理能力。在RFC3511文档中要求协议使用HTTP1.0或者HTTP1.1。整个过程包括TCP三次握手以后执行HTTP事务请求(GET或者POST),并且得到答应,然后关闭TCP连接。需要注意的事项请参见下列说明。
- HTTP1.0和HTTP1.1协议的区别
在HTTP1.0 协议中,每对请求/应答都使用一个新的连接。每次请求都需要客户端与服务器建立一个TCP连接,服务器收到请求并且返回应答后,会立即断开TCP连接。
而HTTP1.1协议是可以保持这种连接状态,是可持久的。在一个TCP连接上可以传输多个HTTP请求/应答。当传输完成后,必须采用三次握手或四次握手的方法关闭链接(FIN,ACK,FIN ACK,ACK ) 。 - 请求/应答的文件大小
在RFC3511文档中没有明确说明文件的大小及类型。在测试TPS前一定要向客户或评测机构了解要求的请求文件的大小及类型。有些机构中采用1 字节或者100字节的文件,而有些机构则采用1K字节或者4K字节,文件类型也多种多样。所以,应多与客户或者评测机构进行实际的沟通。
建议采用文件大小为1K字节、文件类型为文本文件;当采用HTTP1.0 协议时,建议Get 1次;当采用HTTP1.1协议时,建议Get 10次或者更多。 - 通过1可以看到,在测试TPS时,采用HTTP1.0协议或采用HTTP1.1协议测试同一款被测设备,会得到两种不同的测试结果
因为HTTP协议本身的原因,使得在传输过程中得到的事务数会有所不同。理论上讲,HTTP1.1 协议的传输事务数要高于HTTP1.0协议。但这并不能反映HTTP1.1 的每秒连接数要高于HTTP1.0的每秒连接数。
同时需要注意到,测试HTTP TPS时如果采用HTTP1.0,其实和TCP的L7 CPS的性能一样。从测试方法和测试过程中看,两者基本没有区别。
所以,在测试HTTP TPS时,一定要了解客户的关注重点,而且要与客户沟通采用哪个版本的HTTP协议。
HTTP有效吞吐量(HTTP Good Throughput)
在RFC3511文档中没有明确描述HTTP有效吞吐量的测试方法,但通过TPS的测试方法,我们可以根据要求来编写HTTP有效吞吐量的方法。需要注意的事项请参见下列说明。
- 在TPS节,我们知道了HTTP1.0和HTTP1.1之间的区别
在测试HTTP有效吞吐量时,应减少TCP的建立和关闭连接的消耗和延迟。所以在测试HTTP有效吞吐量时,建议采用HTTP1.1协议。 - 在测试HTTP有效吞吐量时,建议采用请求/应答的模式
而且在HTTP1.1协议中,可以执行8个或8个以上的请求命令(GET)。请求的文件大小建议为64K字节的文本文件。当然,在实际测试过程中请求文件的大小及类型,应与客户或评测机构进行沟通。当请求命令越多,请求的文件越大,那么HTTP的吞吐量也就越大。
最大TCP并发连接数
在RFC3511文档中描述的最大TCP并发连接数测试,是采用一种反复搜索机制进行,在每次反复过程中以低于被测设备所能承受的连接速率发送不同数量的并发连接,直至得出被测设备的最大TCP并发连接数。需要注意的事项请参见下列说明。
- 在测试最大TCP并发连接数所采用的协议
有些客户或厂商为了追求更高的数值,在测试此项时采用TCP层协议。而一些评测机构或客户要求在测试最大TCP并发连接数时采用HTTP协议,并且要求有请求/答应机制。 - 在测试最大TCP并发连接数时使用应用层协议(HTTP),请求/应答的传输文件大小会直接影响测试结果
如果应用层流量很大,被测设备会使用很大的系统资源去处理包转发或包检查等,从而导致一些请求无法被处理,引起测试结果偏小;反之测试结果会偏大。这里建议当使用HTTP协议进行测试时,请求的文件不应过大,应在1Byte左右。 - 在测试最大TCP并发连接数时,无论采用TCP协议还是采用应用层协议,都应考虑实际测试需要
从1中我们知道,采用TCP协议进行测试对被测设备的压力要小,并且每条连接中的负载也比较小,被测设备在转发或处理时比较容易,从而很容易达到测试的数目要求。但这并不是说采用TCP协议就是没有意义的,它从另一角度反映了被测设备能维持TCP连接的最大数量。
而如2中采用HTTP协议进行测试,会加大被测设备的压力,使得占用被测设备的资源去处理包转发或包检查。而且请求文件大小的不同,会引起测试结果发生偏差。在实际测试过程中,我们应与客户或评测机构进行沟通,从而测试出被测设备的真实能力,是否满足其要求。
其它性能指标项
如上,我们可以看出在TCP或应用层测试中,主要包括三个重要的指标:每秒新建、有效吞吐量和最大并发连接数。
其实应用层的性能测试,无论是FTP协议、Mail协议还是其它的应用协议都离不开这三个测试指标项。所以,在对其它应用层协议进行测试时,也应像HTTP协议测试一样:明确测试文件的大小,明确每条链接的负载,明确每个请求/应答的过程等。测试过程、测试方法及测试结果的计算衡量基本都与HTTP测试类似。这就要求测试人员对应用层协议要有一定的理解,甚至对每个关键字的作用要有初步的判定。
总结
本篇主要介绍了TCP/HTTP层的性能指标的测试方法,并由此扩展到其它所有需要的应用层的性能测试方法。