网关类产品的性能测试之一:简介及性能指标介绍

本文所指的网关类产品,是指实际拓扑中会被部署作为网关的产品,典型的如路由器/交换机、防火墙、IDS/IPS、UTM、NGFW等。
但是性能测试中很多种类,对于大多数产品其实是相通的,因此对其它产品的性能测试也有参考价值。
文章主要面向的对象为性能测试及性能调优人员,同时对选购产品的潜在客户有指导意义。

背景

对于网关类产品性能和稳定性是前提。如今各种NGFW、应用防火墙等概念不断涌现,各大厂商反复在功能的丰富性上做文章,但所有这些只能算作锦上添花,只有产品的性能与稳定性才是真正的根基。对于任何网络环境,如果网关的吞吐小于实际需要的带宽值,必将是一场灾难。而更多的功能导致数据包经过的路径更长,对性能带来了更严峻的挑战。同时,稳定性和性能往往是相关的,且性能测试更标准。
因此客户评价网关产品的优劣,除了产品所支持功能以外,更关注的指标就是性能。另外,现在市场上大部分的网络安全类产品或者网关类产品在功能和协议的支持上,同质化较为严重,客户在选取时,性能指标就成为衡量的一个很重的指标项。
产品的性能指标不仅客户非常关注,设备厂商在向市场发布产品时,性能指标也会做为重点进行宣传,正面PK。由此可见性能指标对于网关类产品的重要性。

目录

此系列文章将介绍业界较为常用的性能指标及测试方法。因篇幅较长,为竭尽所能说的更清楚明白,将本系列分为以下四部分:

  1. 简介及性能指标介绍 - 本篇
  2. RFC2544四项指标测试方法
  3. 其它指标测试方法
  4. 测试工具、注意事项及经验总结

性能测试简介

以下解释来自百度百科:

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

其中有三个关键词需要关注:

  • 工具:性能测试一般需要的压力较大较复杂,单纯依靠手工很难做到,因此一般需要专业化的设备、工具,或编写自动化测试脚本完成。网关类产品一般要求的负载较高,在千兆、万兆设置更高级别,一般需要专业配置千兆万兆网卡的硬件设备,如IAXA等,价格较昂贵。而其它产品一般也需要如Loadruner、Jmeter等专业化的性能测试软件并根据场景编写脚本完成。
  • 负载:性能测试有别于功能测试的点就在于使用的负载较高。而且负载的构造需要根据实际的场景才有价值,并需要使用特定的工具或自行研发软件实现。
  • 瓶颈:逐渐加大负载到达瓶颈。测试中比较重要的就是各个性能拐点,因为各个拐点往往都有重要的意义。如保持最优响应的拐点、延迟急剧增加的拐点、系统彻底瘫痪的拐点。持续测试找到各个拐点,对于产品的调优、部署及运维都有很大的价值。
    性能测试结果

术语介绍

文章中会涉及到一些术语,现总结如下,供参考。

  • 性能测试,对产品负载压力承受能力的测试。
  • RFC,互联网及软件等的一些标准,基本的互联网通信协议都有在RFC文件内详细说明。
  • 网关类产品,部署作为网关的设备及软件。
  • IDS,入侵检测系统
  • IPS,入侵防御系统
  • UTM,对防火墙、IDS\、IPS三个的综合,可以比较全面的进行管理。但是UTM通过一台物理设备集成大量功能,导致了应对大量数据的时候效率会下降,同时存在设备损坏导致全面崩溃的可能。
  • NGFW,下一代防火墙,安全设备类产品未来的发展方向。
  • DUT,devices under test,测试设备。

性能指标名词解释

网络安全类产品或网关类产品常见的性能指标有:

  • RFC2544 四项值(吞吐量、延迟、丢包率、背靠背)
  • TCP 的每秒新建连接数(CPS)
  • HTTP 的每秒处理事务数(TPS)、HTTP 有效吞吐量(HTTP Throughput)
  • 最大并发连接数等

除此之外,部分评测机构或客户也会根据自己的实际情况增加性能指标,如:IPS/UTM下的HTTP有效吞吐量和每秒新建,Mail协议(SMTP/POP3/IMAP)的有效吞吐量和新建,特殊场景的混合流量(如加入恶意流量)的吞吐量等。
可参考业界标杆Fortinet的性能测试报告
Fortinet product matrix

下面我们先认识一下各性能指标名词的含义。本篇只介绍各名词的含义,测试方法后续章节中说明。

RFC2544 四项值

RFC1242文档中定义了吞吐量(Throughput)、延迟(Latency)、丢包率(Frame Loss)、背靠背(Back-to-Back)四个标准术语。
RFC2544是RFC组织提出的用于评测网络互联设备(防火墙、IDS、交换机路由器等)的国际标准,其中主要对RFC1242 中定义的性能评测参数的具体测试方法、结果的提交形式作了较详细的规定。

下面将对这四项值是做为重点进行介绍。

吞吐量(Throughput)

吞吐量是指被测设备在不丢包的情况下,所能转发的最大速率或最大流量。通常测试结果以每秒通过的最大数据包数(PPS)或比特数(Mb/s)。
用于反映被测设备所能够处理的最大的数据流量,重在测试被测设备的转发能力。
结果值越大越好。
吞吐量比较通用,适用于绝大多数软件系统的性能测试。

延迟(Latency)

发送一定数量的数据包,记录中间数据包发出的时间T1,以及经由被测设备转发后到达接收端口的时间T2:Latency=T2-T1。延迟的测试结果以毫秒(ms)或微秒(μs)表示。
测试延迟是在测试过程中不存在丢包的条件下进行的,也就是说在测试延迟时,先要知道被测设备的吞吐量,从而定义发包的速率。
延迟用于反映被测设备处理数据包的速度。
延迟越小,表明设备处理速度越快。
延迟比较通用,是大多数软件系统性能测试的重要指标。

丢包率(Frame Loss)

丢包率是指在一定的负载下,由于缺乏资源而未能被转发的包占应该转发的包数的百分比。
用于反映被测设备承受特定负载能力。
结果值越小越好。

背靠背(Back-to-Back)

以能够产生的最大的速率,发送一定长度的数据包,并不断改变单次发送的数据包数目,直到被测设备能够完全转发所有发送的数据包而不丢包,这个包数就是该设备的背对背值。
用于反映被测设备处理突发数据的缓存能力。背对背的值越大,路由器的缓存能力就越强,处理突发数据包的能力越强。

TCP每秒新建连接数(CPS)

TCP每秒新建是在业界提到最多的一个。这个性能指标出自RFC3511文档。全称是 Maximum TCP Connection Establishment Rate(最大TCP 建立速率),大家习惯将这个指标称为CPS(TCPConnection Per Second)。
TCP每秒新建速率是指在被测设备能够成功建立所有请求连接的条件下,所能承受的最大TCP 连接建立速度。其测试采用迭代搜索算法,每次迭代过程中,以低于被测设备所能承受的最大并发连接数发起速率不同的TCP 连接请求,直到得到所有连接成功建立的最大速率。
TCP每秒新建速率以连接数/秒表示结果,其值越大越好。
注:TCP Connection Establishment已在RFC2647文档中进行定义。

HTTP的每秒处理事务数(TPS)

TPS性能指标是反映被测设备应用层的新建速率,这个性能指标也出自RFC3511文档。全称是Maximum HTTP Transaction Rate(最大HTTP传输事务速率),大家习惯将这个指标称为TPS(HTTPTransaction Per Second)。
HTTP的每秒事务数是指在被测设备能够成功建立连接的条件下,所能承受的最大的HTTP 协议的请求/回应操作的速度。其测试采用反复搜索过程,每次反复过程中,以低于被测设备所能承受的最大处理速率,直到所有连接被成功建立并且有对相应的请求。
结果以连接数/秒表示结果。其值越大越好。

HTTP有效吞吐量(HTTP Good Throughput)

HTTP有效吞吐量是反映被测设备在应用层的最大传输速率,这个性能指标在RFC3511文档中没有明确描述,但可以通过将HTTP Transaction Rate调整转化为HTTP有效吞吐量的测试方法。HTTP有效吞吐量是指在被测设备能够成功建立连接的条件下,在同一时间内所能承受的最大的有效数据量。
测试结果值越大越好。

最大并发连接数

最大并发连接数性能指标是反映被测设备最大的会话条目数,这个性能指标也出自RFC3511文档。全称是 Concurrent TCP Connection Capacity。最大并发连接数是指在被测设备能够成功建立连接的条件下,所能同时承受的最大的链接条目数,也反映了被测设备维持多个会话的能力。
测试结果值越大越好。

其它性能指标项

RFC3511文档中主要描述了HTTP协议的性能测试,但随着产品及技术的大幅度更新,这往往已经不能满足客户或厂商的需求。我们还需要测试其它协议的性能,通常以应用层为主:包括FTP协议、Mail协议等。但测试的内容基本都是一样的,以每秒新建(每秒会话)和吞吐量为主。只需将HTTP协议变为其它应用层协议即可。

随着网关产品尤其是网络安全类产品的发展,性能测试的范围不再局限于防火墙功能上的性能测试,还新增加了对其它功能如IPS、AV(防病毒)和UTM(集成安全网关)等的性能测试。但可以看到,这些功能的增加对于测试过程或者测试方法而言其实没有直接的影响,仍然要使用原来的测试过程或测试方法。下篇我们将介绍具体的测试方法。

总结

本篇主要是简介及测试方法的概念介绍。所有的性能指标中,RFC2544的四项指标是其中比较重要的部分且目前基本以形成标准,下篇文章将对其进行介绍。