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

  在信创的大背景下,我的单位也在执行国产化替代了。我们采取的思路是逐层替代的方式,在网络层首先替换负载均衡设备,从 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 row和update value on,对应这两个选项我们分别选择unique和once,就是在启动 vuser 时给每个 vuser 分配一个值,每个值都取一个参数列表里的新值,后面的循环中不再更新这个值。

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

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

相关推荐
陈希1234 天前
Nginx 从入门到能扛事:反向代理、负载均衡与 HTTPS 实战
nginx·https·负载均衡
未来之窗软件服务9 天前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
Linux-lucky9 天前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
gwf21610 天前
RDMA子接口与VLAN性能测试
性能测试·rdma·芯片测试·dpu·roce·智能网卡·perftest
小羊没烦恼!12 天前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
2601_9679873714 天前
Python在自动化测试中有哪些应用?
python自动化测试·selenium·appium·pytest·性能测试
知已难寻14 天前
00 · OpenStack 总纲——从云计算到 OpenStack 全景
运维·服务器·云原生·云计算·负载均衡·openstack·perl
七夜zippoe14 天前
Agent 网关设计:统一入口、智能路由与负载均衡
运维·ai·log4j·负载均衡·agent·网关设计
蒸鱼Yuzheng14 天前
性能 CI 成本优化:设备分钟、风险分层与自适应测试选择
自动化测试·ci/cd·性能测试·测试平台·成本优化
Vitaliy Kostrov(柯维远)15 天前
Multi-CDN 决策闭环:QoE、成本、安全与内容正确性如何进入同一个策略引擎?
安全·网络安全·云计算·音视频·负载均衡·cdn