以IXIA公司4~7层工具IxLoad为例介绍了应用层设备的通用测试方法,着重介绍了应用层设备需要测试的HTTP协议相关的5个重要指标:新建连接速率、并发连接数、事务交易速率、有效吞吐量以及有攻击流量存在下的混合业务测试,并针对每种测试例可能遇到的问题提供了建议性的解决办法。
1 引言
应用层设备的性能测试是一个复杂的任务,需要采用专业的高性能工具构造复杂和真实的有状态应用层流量验证设备的深度数据包检测(DPI)能力。特别是新一代应用层设备可以处理上千万级别的并发TCP 会话,超过百万级别的TCP新建速度,超过100G的应用层吞吐量和千万级别的用户数量。这些高性能设备需要专业的测试工具同时仿真多重播放流量(Mulitplay Traffic)全面验证其性能以及分析管理流量的能力,并且可以得到各种应用的用户体验质量(Quality of Experience ,QoE)指标,这些业务评定指标包括:
(1)HTTP:系统能够处理并发连接数的数量,系统能够处理连接数的速率以及页面访问的反应时间。
(2)FTP:系统上传和/或下载文件的最大有效吞吐量(Goodput)。
(3)E-mail (POP3,SMTP,IMAP):主要评估网络和系统能够处理邮件的速率(每秒钟发送或接收邮件的数量、发送或接收附件的数量等)。
(4)Voice:系统处理的IP电话呼叫的语音质量(MOS)以及呼叫建立时间。
(5)Video:系统所支持的VoD视频点播的视频质量(MDI,MOS_V)。
(6)P2P:Peer-to-Peer流量的吞吐量。
(7)DNS:系统所处理的DNS查询速度和反应时间。
还必须要考虑进行攻击流量(Attack Traffic)比如拒绝服务攻击(DDoS)的测试,以保证这些异常流量对正常业务不会造成影响。
本文以业界最为流行、应用最为广泛的美国IXIA公司4~7层IxLoad测试工具为例,介绍最为常见的HTTP协议相关测试项目、测试方法和测试结果分析等,这些都是应用层设备最为基本也最为常见的测试项目。需要说明的是,虽然是以IXIA IxLoad为例进行介绍的,但是相应的测试方法和结果分析是通用的。这些测试项目包括最大HTTP新建连接速率(Maximum Connection per Second),最大HTTP并发连接数量(Maximum Concurrent Connection),最大HTTP 事务交易速率(Maximum Transactions per Second),最大HTTP吞吐量(Maximum Throughput),在有DDoS攻击流量下的性能(Application Forwarding Performance Under DoS Attacks)。
2 IXIA IxLoad支持协议以及特性介绍
美国IXIA公司IxLoad是目前业界最全面的测试应用层业务的可扩展性、高集成度测试方案,最为显著的技术特点包括:
(1)一个应用程序仿真超过20种应用层业务。包括:
●数据业务:TCP协议性能,UDP协议性能,HTTP (1.0/1.1),SSLv2,SSLv3,TLSv1,FTP,SMTP,POP3,IMAP,RTSP/RTP,Telnet,DNS,DHCP,LDAP,Tracefile Replay,SSH Client,Radius Client,Application Replay,CIFS,P2P。
●语音业务:SIP,MGCP,H.323,H.248,SGCP (Skinny)。
●DDoS和漏洞扫描(Vulnerability Attacks)。
●Web应用测试。
●视频业务:Channel Zapping,Broadcast TV and VOD,IGMPv1/v2/v3,MLDv1/v2,RTSP/RTP。
●高级网络接入方式:PPPoE,L2TP,IPSec,DHCP (Including Option 82),VLANs (802.1Q,QinQ,802.1p),GTP。
(2)极高的性能:最新推出的Acceleron NP高性能模块在汇聚模式下,一个物理端口可以产生超过80万的真实完整HTTP新建连接速率,或者1000万的HTTP并发连接数,并且可方便扩展到几百万用户的仿真,在相同的物理空间下,IXIA可提供远超过竞争对手的性能指标。
(3)与现实网络一样的仿真真实用户行为:可以基于每一个用户进行业务仿真和QoE质量分析。
(4)对网络架构中的重要组成部分进行性能评估:AAA/RADIUS services,DNS,DHCP,LDAP。
(5)可以产生异常或者非法流量对设备的安全性进行评估。
3 主要测试项目
3.1 最大HTTP新建连接速率(Maximum Connection per Second)
由于TCP拆连接有多种方法,所以有多种途径来测试最大HTTP新建连接速率。
(1)首先TCP连接建立(SYN,SYN-ACK,ACK),然后是一个完整的包括请求和回应的7层交易过程,最后为TCP拆除连接(FIN,ACK)。
(2)首先TCP连接建立(SYN,SYN-ACK,ACK),然后是一个部分或者不完整的7层交易请求,最后为TCP拆除连接(FIN,ACK)。
(3)首先TCP连接建立(SYN,SYN-ACK,ACK),然后是一个部分或者不完整的7层交易请求,最后为TCP连接直接复位(Reset)。
最为理想的方式为第一种,因为其包含了完整的成功7层协议交互过程。但是对于仅关心4层TCP性能的设备来说,第二种方式比较合适。第三种方式常用于强制拆除TCP连接下被测设备的压力测试。该测试至少需要客户端和服务器端各一个端口,HTTP客户端流量通过被测设备到达HTTP 服务器端,图1是测试连接的示意。
图1 应用层设备测试示意图
表1是进行HTTP新建连接速率测试时通常设置的参数表,这些典型参数设置仿真了网络中典型的HTTP应用情况,可以在实验室里面验证被测设备在网络中的HTTP新建连接速率性能表现。表2总结了一些典型的应用场景,根据被测设备的类型以及不同的工作模式,用上述参数进行设置并进行测试。
表1 HTTP新建连接速率测试时建议IxLoad参数设置
表2 被测设备典型的工作模式与建议配置
具体采用IxLoad进行测试设置的步骤,可以联络IXIA公司得到操作指导书,测试的目的是能够得到预期的结果并能够对出现的各种异常或者问题提供分析和帮助,表3是HTTP新建连接数测试所关注的关键指标。在测试过程中或者测试结束后,如果观察到测试结果和预期的不一致,可能是参数配置的问题,需要通过一些途径进行分析,表4是该测试任务可能遇到的问题以及建议性的解决办法。
表3 HTTP新建连接数测试所关注的关键指标
表4 可能遇到的问题与建议的解决办法
3.2 最大HTTP并发连接数量(Maximum Concurrent Connection)
该指标主要用于测试被测设备能够维持的最大激活的TCP Session的数量,该过程是首先通过SYN,SYN-ACK,ACK的TCP三次握手建立TCP连接,然后执行7层的数据交互过程,最后拆除TCP连接。一般情况下,设备的最大并发连接数和设备的存储空间有关,该值越大,能够维持的连接数就越多。测试连接见图1,表5是在进行该项目测试时推荐的参数设置值。被测设备有多种工作模式,表2中列出来的参数同样适用于该测试。同样,表3中列出来的也是并发连接数测试所需要的关键指标。
表5 最大HTTP并发连接数量建议IxLoad参数设置
为了验证被测设备是否达到最大HTTP新建速率的限制,可以在IxLoad 时延的统计结果里面TTFB(Time to First Byte)参数,在图2的例子中,TTFB在“Ramp Up”阶段能够处理大量的连接请求,随后连接时间(Connection Time)和TTFB值的增大反应了被测设备处理速度的减缓。表6是该测试任务可能遇到的问题以及建议解决办法。
图2 IxLoad测试结果中TTFB测试示意
表6 可能遇到的问题与建议的解决办法