Meet the “CRAY” of Testing - the JMeter Supercomputer
Load is all about capacity and JMeter is a memory consuming beast.
It’s fine to use JMeter for a small load but then it is not really considered as load. Once you start running large capacity load tests, you must use a distributed JMeter environment. That is when JMeter’s thirst for memory comes out to play.
There are two issues, that when not handled properly, can bottleneck and negatively affect tests.
The JMeter Engine’s Memory Cravings
JMeter engines can easily saturate and reach memory limits of even the strongest machine. There are 4 dominant factors will determine the behavior of the JMeter engine and the extent of the memory craving.
- Number of threads - The more threads used, the more memory JMeter consumes.
- Number of hits per second - JMeter stores all data in the memory bank, so, the more hits per time period, the more memory needed.
- Script logic - The longer and more complex the script, the more it will consume vast amounts of memory.
- Listeners - Certain listeners (e.g. View Results Tree) consume a whole lot of memory … Stay away!
Everything Goes Through the Console
With JMeter architecture, all the data goes through the console for measurements. Therefore, there will always be extended bandwidth and memory consumption at the console’s end. Think of it as the console doing the same amount of work as ALL the engines put together.
It is very easy to saturate the console with the same 4 elements as mentioned earlier. But multiply those issues by the number of engines. N.G. Not good. That is far too much memory.
BlazeMeter’s team added a mother load of juice.
Just for you.
The new console for X-LARGE capacity tests is a quad core machine equipped with 15 GB of memory.
YES. 15 GB. OH YEAH.
But wait, there’s more.
Our blazin’ medium sized engine! Now packing 3.5GB of memory!
To reduce the chance of memory saturation and allow more flexibility in script logic, we added more juice into our servers.
We literally doubled the memory size of the medium JMeter engine Instead of a mere 1.5GB of memory allocated to a medium size engine, the medium size server now possesses 3.5GB of memory.
As always and regardless of the engine size, each test includes a dual core console with 7GB of memory.
However, any test run with more than 8 engines, will now be privy to a quad core machine with 15GB of memory for super hero strength.
With BlazeMeter users can run JMeter tests of up to 60 engines.
All servers are dedicated and available on-demand.
A JMeter fantasy no more.
Imagine running a test with 60 engines. Once run, 60 single core engines with 3.5GB memory each + 6 quad core consoles with 15GB of memory will launch to provide the best test possible.
That is a blazin’ total of 363GB and 84 cores running in a single test. Wow.
Obviously, one can choose to use large engines. Each engine will run on a dual core machine with 7GB.
So, have you answered the BlazeMeter riddle yet?
Which beast has half a terabyte of memory and 144 CPU cores?
A 60 engine BlazeMeter test (large)!
The new medium size engine available to all our plans.
The extra large, super strength console is available for users of our ON-DEMAND and ENTERPRISE plan.
Quick Q n’ A
Can the new medium engine run more threads?
- Well, it’s up to you. BlazeMeter provides the JMeter environment as a self-service platform. The user can choose the configuration and purpose. JMeter’s recommendation for the number of threads per engine is 300. We did not increase the engine’s strength to support more threads. We did it to reduce the chance of memory saturation.
But, can it run more threads?
- Yes it can. But please use your power wisely.
Is the new medium engine more expensive than the old engine?
- No. The new engine is provided at the same price as the old one.
The new medium engine includes only one core while the previous included a dual core CPU - How will this affect the test?
- JMeter is more sensitive to memory than to CPU. Through the thousands of tests run on BlazeMeter’s JMeter Cloud, we noticed that the memory saturated very quickly while the CPU utilization was low. The large engine configuration is available and offers a dual core with 7GB of memory for the more demanding tests.
What do I need to do to start using the new medium engine?
- For new tests, nothing, as the new medium engine is the default engine. For previously run tests, go to the advanced test properties and change the engine size from Old Medium to Medium.
What do I need to do to start using the new quad core console?
- Nothing. The new quad core console is allocated for you automatically according to your test size. This console is available only for Enterprise users and ON-DEMAND when running tests larger than 8 engines.
Join the first JMeter Meetup. Wednesday, May 9 @6:30pm. Bay Area, CA. RSVP today!