如何用Avalanche测试ADC产品的主要性能(新建连接、并发连接、吞吐量)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

   最近利用思博伦的Avalanche 3100和AX设备做了几个性能测试,测试AX设备的L7层新建连接、并发连接数和L7层吞吐量。由于单台Avalanche设备能够打出的性能压力有限,所以并没有测出AX设备的性能上限,但是测试过程中,获得了一些调整Avalanche测试脚本的经验,分享给大家。

1、测试拓扑和方法:

        如下图所示,测试拓扑比较简单就是两台设备通过万兆端口直连,这里有个建议:如果需要测试吞吐量,最好用万兆口相连接,拓扑和物理连接都比较简单,而且Avalance在下发测试模板的时候也会比较快!

        测试方法:由Avalanche测试仪表分别模拟客户端和服务器端,其扮演客户侧的端口发起大量访问AX虚拟服务器VIP的流量,经过AX设备的负载分担,将这些访问请求导入到Avalanche扮演服务器侧的端口上,并做出应答。

Performance_Testing Topo

以下是AX上VIP的相应配置,本次测试加载了URL hash和URL switch这两个HTTP应用层特性,所以测试方法更贴近实际应用,如果简单的测测ADC产品的四层性能,我想意义不是特别大。

  • 创建HTTP模板,将URL中包含特定字符的请求分配到对应的服务器组群(service-group)中,并按照URL起始128个字节长度取值做Hash保持;

          slb template http url-hash 
                 url-switching contains news service-group sg-news 
                 url-switching contains sport service-group sg-sport 
                 url-switching contains blog service-group sg-blog 
                 url-switching contains music service-group sg-music 
                 url-switching contains gov service-group sg-gov 
                 url-switching contains finance service-group sg-finance 
                 url-switching contains media service-group sg-media 
                 url-switching contains download service-group sg-download 
                 url-switching contains p2p service-group sg-p2p 
                 url-switching contains flash service-group sg-flash 
                 url-switching contains movie service-group sg-movie 
                 url-hash-persist first 128 use-server-status

  • 配置被访问的VIP,并启用此前创建的HTTP模板,同时将会话表空闲超时时间设置为3600秒,测试并发连接数是会用到这个TCP模板; 
    slb virtual-server vip-test 10.10.0.10 
       port 80  fast-http 
          service-group sg-test 
          template tcp idletime 
          template http url-hash

2、测试七层每秒新建连接(CPS)的脚本

  • 首先配置客户端的测试动作,在Avalanche控制终端的【Client】菜单项中,选择【default Actions】子菜单,修改客户端的action动作,设定客户端发起访问的目标地址和目标文件,为了测试URL switch和Hash,最好get不同的URL路径,URL越离散越好,这些URL中需要包含HTTP模板中的那些字段,以测试其效果;

image

  • 选择【Network】子菜单,添加客户侧源IP地址,这些IP地址要足够多;

image

  • 选择【Ports】子菜单,选定Avalance测试仪表与AX客户侧Vlan连接的端口,并在此端口上添加一个虚拟路由器(Virtual Router),将缺省路由指向AX的端口IP;同时,在AX设备上也要将客户侧的子网路由指向虚拟路由器的接口IP;

image

  • 在【Loads】子菜单中配置业务访问压力,【Specification】选为“Connections/second”;【Ramp UP】由于仪表限制,Avalache3100基本也就能打出不到20万的CPS,所以在30秒周期内,我将预期峰值设定为最高190,000CPS,维持20秒;

image

  • 最后在【Associations】子菜单中,归结以上创建的各个部分,形成客户端测试模板;
  • 同样的,在Avalanche控制终端的【Server】菜单项中,配置服务器端【Profile】参数,选定服务类型为HTTP,Server类型为IIS;
  • 在【Transactions】子菜单中,配置服务器侧目标文件的大小(Size),注意:测试CPS时一般可配置为128字节或者1K字节大小的文件,测试吞吐量时需要配置为至少512K字节大小

image

  • 同样,在【Network】、【Subnets】、【Ports】子菜单中配置服务器侧的子网IP、网关地址和端口,将服务器网关指向AX设备与该端口连接的接口IP地址;
  • 最后在【Associations】子菜单中,配置服务器的IP地址,并归结以上创建的各个部分,形成服务器端测试模板;

image

  • 完成以上步骤后,就可以开始测试了,以下是测试时在两个设备上的截图;

imageimage

3、测试七层吞吐量的脚本(目标文件大小为512K字节)

  • 利用此前创建的CPS测试脚本,在【Client】菜单中,选择【Loads】子菜单,修改客户端的业务访问压力,【Ramp UP】设置为在30秒周期,将预期新建连接值设定为4,000CPS,预计峰值产生20Gbps流量(4000 x 512K bytes),维持300秒;
  • 在【Server】菜单中,选择【Transactions】子菜单, 配置服务器侧目标文件的大小(Size)为512K字节;

image

  • 完成以上步骤后,就可以开始测试了。

4、测试并发连接数

测试并发连接数是这几个性能测试当中稍微复杂一些的项目,主要是因为测试仪表需要保持住已经建立的连接,直到达到我们预期的数值为止。那如何保持住呢?我采用的方法是让测试仪表在一个TCP connection中每个几十秒发送一个HTTP Get请求,这样可以保证测试仪表不会主动向负载均衡设备发送关闭连接的报文;同时,调整负载均衡设备上的连接空闲超时时间(Connection idle timeout),将空闲超时时间设置到比测试仪表达到预期值所需时间更长就好。

  • 利用此前创建的CPS测试脚本,在【Client】菜单中,选择【Actions】子菜单修改客户端的action,设定客户端发起不小于20个请求,访问不同路径的目标文件(正好测试URL hash需要),如图所示;

image

  • 选择【Profile】子菜单,启用“User Think Time”时间,设定为40秒,使客户端每发起一个HTTP Get请求后都会等待40秒再发起下一个Get请求,以保证客户端的连接不会空闲超时而关闭;

image

  • 在【Loads】子菜单中配置业务访问压力,【Specification】选为“Connections”,【Ramp UP】中将并发连接数峰值,设定到预期值,并维持一定的时间(以秒为单位);

image

  • 保持【Server】端的配置不变,即可开始测试了。

 

以上就是利用Avalanche仪表对负载均衡产品进行性能测试的大致方法,要注意每个测试仪表和被测设备都是有性能上限的,需要在测试过程中注意性能瓶颈的定位。可以通过这些设备的CPU、内存占有率等资源情况来做出判断。

 

S.G

本文转自 virtualadc 51CTO博客,原文链接:http://blog.51cto.com/virtualadc/703546


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
28天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
45 4
|
2月前
|
安全 Linux 虚拟化
|
4天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
26 11
|
6天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
38 13
|
6天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
34 10
|
27天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
83 13
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
42 4
|
2月前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
41 1
|
3月前
|
测试技术
产品测试
【10月更文挑战第10天】产品测试
42 2