0

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

4

4 回答 4

3

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

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

问候

菲利普

于 2012-07-31T19:14:52.947 回答
1

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

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

于 2012-07-31T17:16:14.193 回答
1

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

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

于 2012-08-01T19:42:31.900 回答
0

您需要使用 Jmeter-server 和大量客户端机器来生成负载。您的单台机器不足以自行生成负载。

于 2012-12-12T11:22:23.237 回答