记录一次绕过负载均衡直接测试多个服务节点性能的工作

  在信创的大背景下,我的单位也在执行国产化替代了。我们采取的思路是逐层替代的方式,在网络层首先替换负载均衡设备,从 F5 替换成几个国产设备之中的一个。

  测试环境的 F5 设备版本太老了,替换后发现国产的设备性能要强很多。领导为了对比到底哪个国产的负载均衡设备更好,好在哪里,具体好多少,提出一个思路让我们测一下两种场景的性能,然后对其进行对比:

  1. 使用负载均衡设备下的系统性能
  2. 不使用负载均衡设备下的系统性能

  使用负载均衡的系统对外暴露的是一个 URL,测试起来很简单。不使用负载均衡的系统,对外服务节点有 8 个,暴露了 8 个 URL,该怎么设置 LoadRunner 的脚本呢?

  先明确一下目标:不使用负载均衡设备把流量均匀的分配到8个相同的服务节点上。我想到两种思路:

  1. 让分配到 8 个节点的请求数一致。测试工具发送请求的原理是发一个成功了或超时了再发第二个,但是每个节点的处理能力略有不同,如果强制向 8 个节点发送相同数量的请求,会导致有的节点处理不过来,有的节点已经处理完成了再等待新的请求,这样也不算均衡。
  2. 让 8 个节点的连接数一致。同一时刻有相同数量的用户连接到每个节点上,意味着同一时刻每个节点处理的任务数是相同,这样从连接数上看是均衡的。

  我们决定使用第二种思路解决这个问题,具体是按下面的步骤操作的 :

  1. 把 8 个访问地址里的 IP做成参数。 URL 由前面的服务器地址 http://192.18.*.*和后面的服务地址/service/get/**组成, 8 台服务器有 8 个不同的 IP地址。首先把 IP做成 LoadRunner 里的参数。
  2. 配置参数文件。要实现多个用户均匀访问 8 个地址的方式,比如共200 个用户,可以配置每 25 个用户对应一个访问地址。所以我们可以在 IP地址参数文件里这样配置,IP1,IP2,IP3......IP25,IP1......IP25......,这样重复 8 次,正好 200 个参数。
  3. 配置参数值的更新方式。在 LoadRunner 中配置参数时可以选择两个选项select next rowupdate value on,对应这两个选项我们分别选择uniqueonce,就是在启动 vuser 时给每个 vuser 分配一个值,每个值都取一个参数列表里的新值,后面的循环中不再更新这个值。

  这样在启动 vuser 时,200 个用户中的每一个都从参数列表中取一个 IP,然后固定使用这个 IP直到脚本执行结束。由于 IP是平均分配的,就达到了均匀分配流量的目的。

  最终我们成功拿到了不使用负载均衡的性能和使用负载均衡的性能,对比出了差异,完成了任务。

相关推荐
2601_9667990417 小时前
酷嗨米J300:硬件级多通道分发采集设备,为矩阵直播打造独立信号通道
服务器·网络·负载均衡
隔窗听雨眠2 天前
无辅助损失函数的负载均衡:DeepSeek MoE架构的核心突破
运维·架构·负载均衡
岁月失语唯石能言3 天前
《 Web项目测试实战:博客系统的功能/接口/自动化/性能全流程测试报告》
自动化测试·功能测试·selenium·jmeter·接口测试·压力测试·性能测试
蒸鱼Yuzheng3 天前
游戏画质档位怎么测:配置生效、重启持久化、降级与性能收益
性能测试·游戏测试·画质测试·渲染测试·图形设置
章老师说3 天前
BFE v1.8.6 正式发布:AI 网关计费精细化、Claude 协议与会话亲和性升级
运维·人工智能·ai·负载均衡·ai-native
IPdodo_4 天前
静态 IP 访问异常排查:403/429 归因与迁移验收
服务器·网络·数据库·python·网络协议·php·性能测试
格桑阿sir4 天前
Kubernetes服务发现机制(二):Service、Endpoint、EndpointSlice
kubernetes·服务发现·负载均衡·service·endpoint·lb·endpointslice
姚不倒5 天前
Nginx 反向代理:5 种负载均衡策略与实战
运维·nginx·负载均衡
飞鸟真人5 天前
亿级用户IM系统 之 接入网关负载均衡架构(一、网络结构与DPVS部署)
架构·负载均衡·亿级im系统
YOU OU5 天前
多机部署/负载均衡-LoadBalance
运维·负载均衡