【问题标题】:Locust load testing terminology vs Apache BenchLocust 负载测试术语与 Apache Bench
【发布时间】:2019-01-22 07:15:55
【问题描述】:

我正在使用 Locust 对我的网站进行负载测试,我很好奇它与 Apache Bench 在术语方面的区别。

使用 Apache Bench,您可以指定请求数 (-n) 和多个请求数或并发数 (-c)。

Locust 使用的术语略有不同。它具有“要模拟的用户”和“孵化率(产生的用户/秒)”。

据我了解,“要模拟的用户”相当于 Apache Bench 中的请求数。 -c 和“Hatch rate”也是如此,其中“Hatch rate”本质上是将发出多少并发请求?

例如,这两者是否本质上或接近等效?

ab -n 1000 -c 100 url 和拥有 1000 个用户的 Locust,孵化率为 100/秒?

注意:我意识到这两个工具的功能非常不同,而且 Locust 比 Apache Bench 灵活得多。我真的很想了解术语差异。

【问题讨论】:

    标签: performance load-testing apachebench locust


    【解决方案1】:

    要将 Apache Benchmark 与 Locust 进行比较,只需简单地测试 1 个请求,设置相同的时间(-t 5),相同的用户(-c 50),并在 locust 中尽快孵化(-r 50)。

    -n 表示整个请求数,但 locust 中没有这样的参数。所以我们需要一个大数(100000)不能在时间限制(-t 5)内完成:

    ab -n 100000 -c 50 -t 5 网址

    蝗虫 -c 50 -r 50 -t 5 url xxx

    在我的例子中,我发现 ab 比用纯 python 编写的 locust 快 50%。

    【讨论】:

      【解决方案2】:

      Apache Bench 参数和 Locust 参数没有可比性。模拟 Locust 用户的 Locust 数量如何影响每秒有效请求数在很大程度上取决于 Locust 和 TaskSet 类的 python 代码。

      使用 Locust 的目的是用代码定义用户行为,然后您可以模拟大量这些用户。

      您可以有一个不发出 任何 请求的 Locust 类(尽管这有点毫无意义),这将导致有效 RPS 为 0,无论数量多少您选择模拟的用户。同样,您可以编写一个 Locust 类,它只有一个循环,在该循环中它不断发出 HTTP 请求并且没有等待时间,在 情况下,模拟的用户数将对应于 Apache 的 -c 参数板凳。

      【讨论】:

        【解决方案3】:

        查看 Locust issue #646 - Allow a fixed RPS rate 当前 Locust 不支持根据 requests per unit of time 定义所需的吞吐量。

        如果您需要更大的灵活性,您可以考虑Apache JMeter,它具有开箱即用的Constant Throughput TimerThroughput Shaping Timer 插件。

        【讨论】:

          【解决方案4】:

          这并不完全相同,因为使用 locust,您可以为每个用户指定多个请求,以播放整个场景。

          因此,虽然用户的整个场景可能需要 10 秒才能完成,但如果您以 100/秒的速度孵化,您最终会收到大约 1000 个并发请求,因为在第一秒孵化的用户不会发出最终请求,直到10 秒后,又有 900 名用户被孵化出来并发出请求。

          另一方面,如果您只为每个用户执行一个请求,那么它可以与 Apache Benchmark 相媲美

          【讨论】:

          • 明确地说,AB 应该用于 1 offs 和 Locust 用于复杂场景。我已经用了好几年了。它们不是同一个工具 IMO。
          猜你喜欢
          • 1970-01-01
          • 2017-04-14
          • 2020-01-02
          • 1970-01-01
          • 2020-05-17
          • 1970-01-01
          • 2017-08-09
          • 2021-03-18
          • 2019-12-26
          相关资源
          最近更新 更多