We have been asked some questions on how JMeter scaling works. First a little background and then we’ll talk about how you can do it.
If you are running JMeter locally and you need to simulate a larger number of concurrent users, there are limitations on the number of concurrent users you can run. It depends on the CPU and memory of the machine. And running a large test on a single machine can quickly hit memory limits on a single JVM or be limited by network throughput of your single connection. For some best practices on running JMeter tests on a single machine, check out tips for optimizing JMeter Test Plans.
Scaling JMeter yourself to test beyond your own laptop is complicated. Running on two or more servers (Master slave mode) requires coordination and a deeper knowledge of JMeter. The JMeter community does a great job of documenting the process in the section Remote Testing.
Scaling JMeter on RedLine13
At RedLine13 our goal is to make the process cheap and simple. RedLine13 has the technology to do that and we are an AWS Advanced Technology Partner. The result is that running a JMeter test on 2 or 50 servers is the same process when you use RedLine13 and the AWS Cloud:
- Select JMeter Test
- Configure cloud settings
- Run the test
If your JMeter Test has 250 threads and you run on 20 m5.xlarge servers you have a 5,000 user load test. And just like that you are on your way to JMeter scaling and running large scale JMeter load tests.
There are many configuration options available within RedLine13 as needed:
- Include extra files (csv, jar, images, tar, zip)
- Allow csv files to be split between servers
- Allow tar/zip files to be automatically expanded
- Select JMeter version
- Capture output
- Generate JMeter Dashboard Report
- Automatically create merged.JTL file
- Pass in custom JVM and JMeter options
- Select Plugins from JMeter Plugins community
- Select Plugins from UBIK Load Pack
Our process is to package everything that makes up your test, start the load agents, deploy the test information, coordinate running the test, collect and render in realtime the test results. That is followed by test clean up which collects the results files and shuts down the load agents.
Setting up your test on RedLine13 includes three sections for starting your load tests: the basics, advanced cloud configuration, and advanced JMeter Test options. The basic section defines the JMeter related information and an overall number of servers. Of course, you can customize your load agents in AWS cloud with many options:
- Location: All AWS regions are supported
- Size: EC2 Sizes are listed in the drop down
- Number of servers per region/size
- Spot or On-Demand with the ability to control prices for Spot
- Subnets and Security Groups to control access
In the JMeter Advanced options, you can define the fine grain control of the load agents.
After starting the tests you are going to want to start seeing results. RedLine13 will provide real-time results, end of test results, and generated artifacts of the test. To learn more about the real time graphs and output files check out Understanding Graphs. Now you’ve got the tools for real JMeter scaling.