I am currently having issues trying to reach good throughput numbers with Jmeter on AWS. I currently have distributed load testing with 4 t3.large instances (one master, 3 slaves) and with the tests I have launched so far I cannot get beyond 60 HTTP requests per second. I reached that number with only 2 slaves and a test plan with 250 thread groups (so 250 * 2). Then, I tested with 500 thread groups on the test plan and couldn't get higher throughputs. Because of that, I added an additional slave and lowered the amount of thread groups to 334 (334 * 3) and couldn't get higher throughput numbers than the first test. The loop counts and ramp up time remained the same throughout the tests.
I cannot share the test plan I am using but it is basically a recording of a landing page + login + navigation after login using the Blazemeter Chrome plugin.
When running the tests I have been using the JVM_ARGS -Xms1024m -XX:NewSize=512m -XX:MaxNewSize=4096 since in order to avoid memory errors.
I am looking for hopefully something along the lines of 300 HTTP requests per second or more. Is there something I am missing here? Is my infrastructure not enough? Should I tune something in Jmeter?
Thread Group:
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">10</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">334</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1363247040000</longProp>
<longProp name="ThreadGroup.end_time">1363247040000</longProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.duration">0</stringProp>
<stringProp name="ThreadGroup.delay">0</stringProp>
</ThreadGroup>