0
votes

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>
1
Can you indicate which components you use in JMeter ? Javascript ? IfController (show it) any other components ? Show also Thread Group configurationUBIK LOAD PACK
@UBIKLOADPACK I have in it a HTTP header manager, User defined variables (2 variables only for the hostname), DNS cache manager, HTTP Authorization Manager, Cookie Manager, Cache Manager and a CSV Data Set Config for handing username and passwords. Also, I have "View Results Tree" which I believe shouldn´t cause issues if I run the test in CLI mode. I have added the thread group configuration aboveJosé Calvo

1 Answers

0
votes

At the end it seems that I needed more robust infrastructure. I followed the guidelines in the following document:

https://flood.io/blog/how-to-run-one-million-users/

After changing to xlarge AWS instances I was able to get the throughput I wanted. Also, I was surprised to see that the numbers they were referencing in the link above were pretty close as well to what I was seeing while running my test.