我有一个HTTP GET请求。我需要在1秒内将请求发送到应用服务器4000多次。
我使用JMeter发送这些请求。每次使用嗅探工具(Wireshark)进行每次测试时,我都会发现空灵的痕迹。
我试图从一台机器,多台机器(并行)甚至是分布式的方式实现这一点。
其实JMeter的结果不是我在这里的关注。这个测试的关键是看到4000个请求在嗅探器工具中一秒钟到达服务器。
在使用以下JMeter测试计划时,我在1秒钟内发现了几乎2500个请求。
Number of Threads= 4000
Ramp-Up Periods = 0 (Though it is depricated)
Loop count= 1
当我使用线程数为2500时,我几乎有2200个请求在空灵跟踪中一秒钟到达服务器。
从这个请求的服务器的响应不是我的关注。我只想确保JMeter发送的4000个请求在一秒钟内到达应用服务器。
更新:
案例1:(4000线程)
Number of Threads= 4000
Ramp-Up Periods = 0
Loop count= 1
情况1的输出:
JMeter (View Results in Table): 2.225 seconds to start 4000 requests.
Ethereal trace: 4.12 seconds for 4000 requests to hit the server.
情况2 🙁 3000线程)
JMeter (View Results in Table): 1.83 seconds to start 3000 requests.
Ethereal trace: 1.57 seconds for 3000 requests to hit the server.
情况3 🙁 2500线程)
JMeter (View Results in Table): 1.36 seconds to start 2500 requests.
Ethereal trace: 2.37 seconds for 2500 requests to hit the server.
案例4:(2000主题)
JMeter (View Results in Table): 0.938 seconds to start 2000 requests.
Ethereal trace: 1.031 seconds for 2000 requests to hit the server.
I have run these test from only one machine.
No listeners added.
Non-Gui mode.
No assertions in my scripts.
Heap size: 8GB
所以,我不明白为什么我的JMeter结果和飘渺的痕迹彼此不同。我也试过Synchronizing Timer来实现这种情况。
由于4000线程太重,也许我必须在分布式模式下测试。我也尝试过分布式模式(1个主,2个从属)。也许我的脚本是错误的
有可能看到我的4000个请求在1秒内到达服务器的空灵迹象吗?
JMeter脚本在分布式模式下实现这种情况是什么?