【问题标题】:Load generated by distributed worker processes is not equivalent generated by single process分布式工作进程产生的负载不等同于单个进程产生的负载
【发布时间】:2020-08-06 16:18:31
【问题描述】:

我开始另一个测试,试图弄清楚用户是如何分配到工作节点的。

这是我的蝗虫文件。

@task
def mytask(self):
    self.client.get("/")


class QuickstartUser(HttpUser):
    wait_time = between(1, 2)
    tasks = [mytask]

无非就是访问一个从来没有访问过的中文搜索引擎网站。

当我启动 30 个用户在单节点上运行时,RPS 为 20。

locust -f try_baidu.py

得到如下运行状态和结果。

我在电脑的3个终端使用命令切换到分布式运行模式。

locust -f try_baidu.py --master #for master node
locust -f try_baidu.py --worker --master-host=127.0.0.1 #for worker node each

我在 locust UI 中输入与上述相同的用户数量和孵化率,比如 30 个用户和 10 个孵化率。

我的 RPS 相同,大约为 20 左右,每个工作节点运行 15 个用户。

这解释了 UI 中的用户输入数量是模拟和分散在工作节点周围的总数。这类似于负载平衡来负担负载生成。

但我不知道为什么相同数量的用户在单节点(场景 1)和分布式(场景 2)中运行时会给出 2 种不同的 RPS。它们的结果应与上述测试相同或封闭的 RPS。

我能说的唯一区别是上面的比较是在同一台计算机上,而场景 2 在 2 个远程 linux VM 中有工作节点。但这是真正的原因吗?


问题可能问得不是很清楚,我在这里添加了一些测试结果,试图描述我在具有指定用户的分布式和单节点中运行时的情况。

  • 场景 1:单节点

  • 场景 2:尝试模拟 3 个工作进程,每个工作进程运行 30 个用户,但 RPS 甚至更低。

从控制台我可以看到每个工作进程按预期启动了 30 个用户,但不知道为什么 RPS 只有 1/3 或单个节点。

  • 场景 3:为每个工作进程添加三倍用户至 90,并获得与在单节点中运行几乎相同的 RPS。

看来场景 3 是我对三重模拟量的预期。但是为什么locust图形面板给每个worker进程运行90个用户呢?

  • 场景 4:为了确保 locust 真正将指定的用户分配给每个工作节点,我为单个工作节点放置 30 个用户并获得与单个节点相同的 RPS(未分布式)

我是否必须将分配到工作节点的用户总数相加并输入这个总数?

【问题讨论】:

  • 你能提供更多关于你的测试的信息吗?请注意,用户数是总数,而不是每个工作进程。另外,请参阅github.com/locustio/locust/wiki/FAQ中的第一个问题
  • 你能添加你的测试计划吗?某处似乎存在问题,也许与此有关。 “每个工作进程运行 90 个用户”您的解释不正确 - Locust 显示 total 用户计数(对于 所有 工作进程)但这仍然不能解释一些问题你有..
  • 嗨,@Cyber​​wiz,感谢您的耐心等待。我添加了另一个新的简单测试,试图让您理解我的问题,因为我对 Locust 还很陌生。
  • 运行之间的响应时间是否不同?如果分布式运行具有更高的响应时间(无论出于何种原因),那么这就可以解释为什么它们为每个用户提供的 RPS 更少
  • 嗨,我想找到了根本原因。我将主节点转移到另一个虚拟机,它可以正常工作,收集来自所有工作节点的所有请求以纠正 RPS 结果。奇怪的是,原始主节点似乎错过了工作节点之一发送的请求并呈现预期 RPS 的一半。我想弄清楚是什么导致了后来在原始主节点的系统配置方面发生这种情况,但 showstopper 暂时被删除了。

标签: locust


【解决方案1】:

通过将主节点设置到另一个系统,问题得到了一定程度的解决。我想应该有一些东西会干扰主人收集从一名工人发送的请求,这会导致预期 RPS 的一半。这可能提出了一种降低 RPS 的可能解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多