ADC关键性能指标及误区
由于ADC产品相对于网络产品和服务器需求小很多,用户和集成商在选择产品时对关键指标的理解难免有一些误区,加之部分主流厂商刻意引导,招标规范往往有不少非关键指标作被作为必须符合项。接下来就这些误区和真正的关键指标做一些探讨。
误区1: CPU数量和主频。 目前大部分厂商采用了类似的通用CPU架构,但还是可能采用不同厂家的CPU。即使是同一个厂家,也可能是不同系列。最关键的是CPU数量和主频并不代表性能,除非是同一个厂家的同一个软件。同样,完全相同的硬件配置,不同厂商的架构和系统发挥出来的性能可能相差数倍,正如完全相同的几个人在不同的管理环境下发挥出来的贡献差别会很大。并行计算处理不好,由于CPU间信开销及锁的问题,CPU数量增加并不意味性能增加。如果1个CPU可以跑出其它产品8个cpu的性能,谁会选择8个CPU的产品?成本,功耗,体积都会大很多。因此,CPU硬件配置并不代表性能。
误区2: 内存。 同样与系统架构相关。同样与架构有关,对于CPU独享内存的架构,每个核即使只配置2G内存,一个8核的产品就需要16G内存,但每个核可访问的内存资源只有2G。这样的架构一份数据需要复制多次并保存多份,使用效率很低,最终也会影响到性能。而共享内存架构的产品,每个核可以访问所有内存资源,数据也只需要保存一份。如果是32位操作系统,共享内存架构4G内存的实际效率就超过独享内存架构的任意配置产品(目前A10之外的产品均为32位操作系统,独享内存架构)。64位操作系统突破4G的限制,实际效率就会更高。因此,内存不代表性能。如果一定要比较,需要比较每个核可访问的内存资源。
误区3:端口数量。ADC产品不同于2/3层交换机,端口数量代表可连接更多设备。ADC产品部署环境一定会有2/3层交换机,服务器不需要直接连接到ADC产品。只要端口数量大于实际需要的吞吐量并有足够端口与交换机连接即可。
误区4:交换能力。 这个指标也是沿用了交换机的指标。交换机性能与交换矩阵芯片交换能力密切相关,与CPU关系不是很大。而ADC产品则不同,交换矩阵并不是必须部件,大多产品采用通用CPU架构使用PCIe总线扩展接口,这部分已经不是ADC产品的瓶颈所在。ADC性能基本取决于系统整体架构下CPU发挥出来的效率。而且大部分产品本身已经是服务器的硬件架构,应该没有人对服务器要求交换能力的指标。
可以看出,误区所在均为沿用了服务器或交换机的一些指标,这些硬件配置并不代表ADC产品的真正性能,但一些厂商还是刻意利用这些指标(尤其是CPU和内存)来误导客户屏蔽竞争对手。
ADC真正关键的性能指标如下:
1. 4/7层吞吐量。由于需要CPU进行复杂的4-7层处理,4/7层吞吐量交2/3层吞吐量要低很多,但这是ADC真正能处理的数据吞吐量。这也是2/3层吞吐量对于ADC产品并不关键的原因。这个指标的测试方式通常是发送尽可能多HTTP GET请求,服务器应答较大HTTP对象(如512Kbytes或1MBytes,会分为若干数据包传输),计算无失败情况下线路上传输的数据量。差异在于不同仪表厂商或不同测试可能会不计算2/3层包头或GET请求部分,由于这部分所占比例极小,影响不是很大。严格来说,横向比较时应该确定所取HTTP对象大小及是否计算2/3层包头部分。
2. 4层每秒新建连接速率(L4 CPS)。 衡量ADC产品每秒钟可以处理多少个TCP新建连接。通常测试方法为发送尽可能多的HTTP GET请求,服务器应答较小HTTP对象(如1Bytes,128Bytes,1KBytes), ADC产品在中间只根据4层信息进行复杂均衡。每个连接需要完整的3次握手建立过程,GET请求,和TCP关闭连接过程。这个指标对于ADC产品应付突发大量连接非常重要。好比一个地铁入口的通过率一样,如果入口太小,客流突然增加时,如果客人无法进入,业务自然会受到影响。比较该指标时需要注意所取HTTP对象大小。
3. 7层每秒新建连接速率(L7 CPS)。与4层新建连接速率类似,只是ADC产品在中间需要根据应用层信息进行服务器选择(通常测试使用url交换),而且每个TCP连接上只能传输1个HTTP请求。使用7层处理对CPU效率要求更高。如同进入地铁时需要核查客人更多信息和安检一样,其通过率比正常通过率会有不同程度降低。A10产品通常可以做到4层新建连接速率的70-80%,而其它很多厂商只能做到30-40%。比较该指标时同样要注意HTTP对象大小和每个TCP连接传输的请求数。
4. 7层每秒交易速率(L7 RPS)。有些厂商使用L7 RPS作为L7 CPS来混淆误导客户,RPS测试会定义每个TCP连接可以传输多少个HTTP请求,通常会有10个请求/TCP连接,无限制请求连接/TCP连接几种测试数据。使用1个请求的L7 RPS值就是L7 CPS。差别在于每个连接传送多个请求时的L7 RPS测试中,ADC可以省去大量TCP连接建立和关闭过程。比较该指标时同样要注意HTTP对象大小和每个TCP连接传输的请求数。
5. 并发会话数量。 如果新建连接速率代表了一个地铁入口通过率,并发会话则代表了该地铁线路上在车上的所有人数。如果内部承运能力不够高,就会造成乘客挤压过载最后瘫痪。并发会话测试并不是简单的在内存中保存这些条目,实际测试中,必须在每个连接上定时传送数据验证设备可以准确查找已有会话并转发数据。测试中还可能会细分4层并发会话数量和7层并发会话数量,区别在于ADC基于不同信息建立会话和每个连接占用的会话条目不同。由于并发会话与内存关系很大,32位系统的ADC由于4G内存限制都不可能做得很大,而64位系统的ADC就不会受到这个限制。
6. 防DDoS攻击能力(syn/sec)。ADC产品的并发会话能力和新建连接速率远远大于防火墙类产品,因此在ADC外部署防火墙会成为瓶颈。这就要求ADC本身有足够强大的防攻击能力。目前大部分ADC产品均采用了Syn-cookie方式来防御DDoS攻击,实际性能取决于各自的系统架构和处理算法。
值得一提的是,F5的7层新建速率与4层新建速率相比下降非常大,因此会有使用与其他厂商不同的一些数据来作为L7 CPS应答的情况。F5 提供3个L7 CPS/RPS指标.
L7 Connection per Sec(1-1), 客户侧连接1 request/connection,服务器侧连接1 request/connection。 通用L7 CPS定义。
L7 Requests per Sec (1-inf),客户侧连接1 request/connection,服务器侧连接unlimited request/connection。 用户通常看到的L7 CPS数据。
L7 Requests per Sec (inf-inf),客户侧连接unlimited request/connection,服务器侧连接unlimited request/connection。
F5公开的测试报告明确描述其所有7层测试均启用连接复用功能,因此测试报告中看到的都是“L7 Requests per Sec (1-inf)”。比较L7 CPS时时应该注意使用其CPS(1-1)指标。
其他SSL指标、DNS QPS指标、HTTP压缩指标对于使用该类应用的用户很重要,但不属于通用关键指标,就暂不逐一解释了。
L4 CPS --- tcp 每秒新建连接数
L4 TPS --- tcp 吞吐流量
L4 并发数 --- tcp 并发会话数
L7 CPS --- http 每秒新建连接数
L7 RPS ---- http 每秒交易数
L7 并发数 --- http 并发会话数
L7 TPS --- http 吞吐流量
L7 压缩 --- http 压缩流量
SSL TPS --- HTTPS 吞吐流量
SSL 并发数 --- https 并发会话数
SSL CPS --- https 每秒新建连接数
SSL RPS --- https 每秒交易数
syn flood attacks/sec --- 每秒防御SYN攻击数
syn flood attacks tps --- 防御SYN攻击的吞吐流量
syn flood attacks pps --- 防御SYN攻击的数据包数量
udp flood attacks/sec --- 每秒防御UDP攻击数
udp flood attacks tps --- 防御UDP攻击的吞吐流量
udp flood attacks pps --- 防御UDP攻击的数据包数量
dns query req/sec --- 每秒处理的DNS查询请求数
dns query TPS --- 每秒处理的DNS查询吞吐流量
dns query PPS --- 每秒处理的DNS查询数据包数量
AppFW TPS ---
AppFW CPS ---
AppFW RPS ---
AppFW 并发数 ---
======================== End