JMeter负载测试
我想通过在同一毫秒内点击几百次来加载测试URL。我尝试了JMeter,但我可以在同一毫秒内达到2个请求。这似乎是我的机器不能足够快地创建线程的问题。这个问题有什么解决方案吗?JMeter使用阻塞HTTP客户端,为了在100个请求的同时命中服务器,您需要JMeter中的100个线程。即使这样,您仍然没有100个内核来同时运行这样的代码。即使您有100个内核,启动线程也需要一些时间,因此您必须提前启动它们并在某种屏障上进行同步。这在JMeter中是不受支持的JMeter负载测试,jmeter,load-testing,stress-testing,Jmeter,Load Testing,Stress Testing,我想通过在同一毫秒内点击几百次来加载测试URL。我尝试了JMeter,但我可以在同一毫秒内达到2个请求。这似乎是我的机器不能足够快地创建线程的问题。这个问题有什么解决方案吗?JMeter使用阻塞HTTP客户端,为了在100个请求的同时命中服务器,您需要JMeter中的100个线程。即使这样,您仍然没有100个内核来同时运行这样的代码。即使您有100个内核,启动线程也需要一些时间,因此您必须提前启动它们并在某种屏障上进行同步。这在JMeter中是不受支持的 为什么你真的想“以同样的毫秒”运行你的服
为什么你真的想“以同样的毫秒”运行你的服务器?普通的负载测试只是使用尽可能多的连接调用服务器,但不一定同时调用。此外,有时您甚至会在请求之间添加随机睡眠,以模拟所谓的思考时间。JMeter使用阻塞HTTP客户端,以便使用100个请求在同一时间命中服务器,您需要JMeter中的100个线程。即使这样,您仍然没有100个内核来同时运行这样的代码。即使您有100个内核,启动线程也需要一些时间,因此您必须提前启动它们并在某种屏障上进行同步。这在JMeter中是不受支持的
为什么你真的想“以同样的毫秒”运行你的服务器?普通的负载测试只是使用尽可能多的连接调用服务器,但不一定同时调用。此外,有时您甚至会在请求之间添加随机睡眠,以模拟所谓的思考时间。在JMeter中,您可以使用同步计时器将其设置为100,这样所有线程都将等待,直到有100个可用线程并点击服务器:
Philippe在JMeter中,您可以使用同步计时器将其设置为100,这样所有线程都将等待,直到有100个可用线程并点击服务器:
Philippe根据Philippe的回答,JMeter实际上支持同步请求。但是对于你想要的东西,比如使用-c100(或者将它调整到任何可行的方式)是更好的选择吗?这是非常基本的东西,但是开销要小得多,这在这种情况下可能会有所帮助
但我也会从Tomasz的答案中吸取教训,并回应他的担忧,即这可能不是进行负载测试的最佳方式。如果您试图复制现实生活中的流量,那么您真的需要如此高级别的并发吗?根据Philippe的回答,JMeter实际上支持同步请求。但是对于你想要的东西,比如使用-c100(或者将它调整到任何可行的方式)是更好的选择吗?这是非常基本的东西,但是开销要小得多,这在这种情况下可能会有所帮助
但我也会从Tomasz的答案中吸取教训,并回应他的担忧,即这可能不是进行负载测试的最佳方式。如果您试图复制现实生活中的流量,那么您真的需要如此高级别的并发性吗?您需要使用Jmeter服务器和大量客户机来生成负载。单台计算机不足以自行生成负载。您需要使用Jmeter服务器和大量客户端计算机来生成负载。单台计算机不足以自行生成负载。使用异步请求。您正在进行压力测试。请使用异步请求。你在对自己进行压力测试。