【问题标题】:JMeter Load testJMeter 负载测试
【发布时间】:2012-07-29 12:38:45
【问题描述】:

我想通过在同一毫秒内点击几百次来加载测试一个 URL。我尝试了 JMeter,但我可以在同一毫秒内达到 2 个请求。这似乎是我的机器无法足够快地创建线程的问题。有什么解决办法吗?

【问题讨论】:

  • 使用异步请求。您正在对自己进行压力测试。

标签: jmeter load-testing stress-testing


【解决方案1】:

在 JMeter 中,您可以使用同步计时器将其设置为 100,这样所有线程都会等待,直到有 100 个可用并访问服务器:

另一种解决方案是增加线程数,以便达到此吞吐量。 在 JMeter 的下一个版本(2.8)中,您将能够按需创建线程(在需要时创建)。 无论如何,在同一毫秒内点击几百次是一个高负载,因此您必须正确调整 JMeter。

问候

菲利普

【讨论】:

    【解决方案2】:

    JMeter 使用阻塞 HTTP 客户端,为了在 100 个请求的同时访问服务器,您需要 JMeter 中的 100 个线程。即使提供了这一点,您仍然没有 100 个内核来同时实际运行此类代码。即使你有 100 个内核,启动一个线程也需要一些时间,所以你必须提前启动它们并在某种障碍上同步。这在 JMeter 中不受支持。

    为什么你真的想“在同一毫秒”运行你的服务器?一个普通的负载测试只是用尽可能多的连接调用服务器,但不一定同时。此外,有时您甚至会在请求之间添加随机睡眠来模拟所谓的思考时间

    【讨论】:

      【解决方案3】:

      根据 Philippe 的回答,JMeter 实际上支持同步请求。但也许对于你想要的东西,比如 Apache Bench 使用 -c100 (或将其调整为任何工作)是一个更好的选择?这是非常基本的东西,但是开销要小得多,这在这种情况下可能会有所帮助。

      但我也会从 Tomasz 的回答中窃取并回应他的担忧,即这可能不是真正进行负载测试的最佳方式。如果你想复制现实生活中的流量,那么你真的需要这么高的并发性吗?

      【讨论】:

        【解决方案4】:

        您需要使用 Jmeter-server 和大量客户端计算机来生成负载。你的单机不足以自己产生负载。

        【讨论】:

          猜你喜欢
          • 2018-09-28
          • 1970-01-01
          • 2017-11-26
          • 2018-05-28
          • 1970-01-01
          • 1970-01-01
          • 2019-02-10
          • 2015-01-05
          • 1970-01-01
          相关资源
          最近更新 更多