Lowest Cost Cloud Load Testing Tool

World-class Performance Engineers Shine the Light on Load Generation Challenges (it aint easy)

load generation serversThere was a time a few years ago that I needed to hire a Senior Performance Engineer consultant to help me set up load generation servers. I also needed help figuring out all the pieces for getting my performance testing environment setup.

There are so many moving parts, I was overwhelmed. Not just servers, but software tools as well. Buying an enterprise tool from a vendor was impossible - their sales reps were quoting me six figure solutions. Picking an open source tool was hard because there are so many and each has strong advocates, but all required quite a bit of work to get installed and configured to run.

I thought I was the only one struggling. Shouldn't this be easier? Can't I just find a simpler way?

Well, this blog post focuses on one piece of the load testing environment puzzle. I was reading a question thread on LinkedIn in the Load & Performance Testing group. The title (question) is:

What could be the causes if hits/sec keeps going down while the response time and resource utilization are consistent?

Jun ZhuangThe question was asked by Jun Zhuang, Sr. Performance Test Engineer at MedPlus. There were several answers offered by different performance engineers and experts. All of them were applying skill, experience, and logic to the problem in an attempt to help Jun. What I found most interesting is how one consistent idea kept being presented:

You're load generators aren't working correctly.

RamanjaneyuluRamanjaneyulu Narra, Performance Engineer at Axeda Corporation, suggested two possible causes for the hits per second decrease: 1) Caching or 2) Load generators "are being dropped". Not sure how a load generator gets dropped, but he was definitely on the right path with the idea of something was wrong in the load generation part of the testing tool.

NavaneethaNavaneetha Krishnan, Performance Test Lead at Compuware, responded, "Looks like the load generators could be a bottleneck here."




Later, Jun posted this, "it seems there are problems with the new load generators we setup, after a little while they just stopped sending in requests. But we have yet to pinpoint the cause."

Dave Collier-Brown, Senior Staff Engineer at TrekLogic (a Sun Partner), subsequently posted his thoughts. He states, "Yes, problems with load generators are endemic to the industry, plus the failures are often "silent", and aren't visible to the tester, or subtle enough that they can easily be missed. Bummer! "

Dave also mentions that when the response time metrics don't show you the famous hockey stick curve, "it's a good indication of something broken in the experiment, oft-times in the load generator. "

After Jun did some additional analysis and investigation, he concluded, "The problem still turned out to be with the VMs being used as load generators. All the load testing VMs reside in the same corporate VM farm as other VMs and the person who created those load testing VMs did not give them enough priority or shares of resources."

Chuck MastersChuck Masters, Performance Testing Coordinator at Allegis Group, followed up with this insight, "I personally have not used VM boxes as Load Generators and even though HP says it is "supported" I have spoken to many a tester that says don't use load generators on VM. It doesn't work like a traditional stand alone load generator."

load generation serversDonald Foss, Global Load Testing Services at Keynote, contributed this, "I don't generally recommend testing using VM machines because they can introduce artificial delays. They can be manageable if you are experienced with it, but that experience can be painful to get."

My thinking from digesting this discussion is that load generation can be challenging at best - a show stopper at worst.

Buying or acquiring hosted server machines is one obstacle. They cost money. If you make them dedicated to load testing, then they will probably be sitting idle much of their useful lifetime. That's wasted money.

Another challenge is dealing with the software complexity. Operating systems, web servers (including VM), and load testing tools are three primary components of making the load generators work. All of these must be configured properly to get the proper result. Obviously, Jun was struggling with achieving the desired goal of creating load in a manner that would produce valid performance test metrics.

How about this common question that is so fundamental that it is sometimes overlooked:

How many load generators do I need?

Ben SimoBen Simo addresses this question in his blog post by that title. It depends. Again, it is another aspect of complexity that consumes time and energy before a load test can ever be created.

Ben says:

The real question being asked is: How much load can I put on a load generator without impacting performance?

Isn't this one of the most common questions that load testing attempts to answer? Performance testers, of all people, should understand that there is no single formula for determining how much load you can place on a load generator system.

That "system" includes computers, software on those computers, and the network between the load generation computers and the system under test. To determine the requirements for this system we need to monitor that entire system. We need to monitor CPU usage. We need to monitor memory usage. We need to monitor whatever other system resources the script and test tool may impact. We need to monitor bandwidth usage. We need to monitor at the start of a test and at the end of a test. We need to monitor and load test the load generation environment just as much as we need to monitor and test the system under test.

Is Jun's Situation Unusual?

Or is this a common problem shared among anyone trying to performance test their applications?

load generation server at nightFrom the responses, I conclude that load generators are a challenging piece of technology. These are professionals that work for large corporations with significant specialization in their development teams. These are performance engineers and people with "Senior" in their titles. These are NOT lightweight, rookie IT weenies that took a PHP course. Some of them even work for large performance consultancies (regarded as the best in the world).

For world-class load testing pros like these guys to say that, "problems with load generators are endemic to the industry", that clearly tells me that it's not easy. It's unequivocably a red flag for a time trap.

Load generators can be a sink hole for your energy, money, and time.

Wouldn't you rather invest your time finding bottlenecks and tuning your application? Isn't the goal to make good software and make a high quality user experience? Is it a worthwhile use of company money to pay you to work on intricacies of a technology that won't enhance your career or add value your customers?

Here is Jun's Conclusion

"This experience promoted me to think load testing via cloud. Cloud is VMs anyway, we can't even control the VMs within the walls of our own companies, how can we be guaranteed the resources when we need them from a cloud?"

If you find yourself coming to the same conclusion as Jun, my suggestion is to try a free cloud-based load testing tool. Find out for yourself if that approach will solve the "endemic problem in our industry".

Obviously, LoadStorm is one of those solutions. We can abstract all of that load generation complexity so that you can focus on getting the real job done. We aren't the only cloud load testing tool, and you may want to try others.

Try a free LoadStorm account. No VMs to worry about. No servers to install or configure. The load generation just works - almost instantly. Storm your site without the hassle. We guarantee you'll like the results.

You can invest your time making your boss happy and improving your performance tuning skills. Or you can waste time building the infrastructure from the ground up.

Comments

This issue of virtualization

This issue of virtualization and load generation is actually pretty well known in the commercial performance testing community. As far back as 2006/7 I began responding to questions in the LoadRunner Yahoo Group and on SQAForums. You can find a repost of one of my original responses in the LoadRunner Yahoo on the subject of Virtualization and Load Generation quoted in many places on the net, such as this one

The whole issue of virtualization and load generation really boils down to several points

  1. Timing record integrity. The system clock in the virtual machine is virtualized and has an issue that the time "floats" with respect to the actual system clock. Periodically the clock has to play "catch up" and resync with the physical system clock. You cannot control when or where this happens. Murphy being who he is, invariably many of these sycs will occur while a timing record has been opened but not yet closed, so you have a distorted picture on the long axis of how long a given business process takes to complete. If you have really aggressive requirements you can almost reach a certainty that you will not be able to hit them because of an architectural constraint on your load generation
  2. Uncontrolled influences. Virtualization is not partitioning. You cannot guarantee the amount of resource the hypervisor will dedicate to your image at any given point. And, of course with Virtualization, you can be guranteed that you are going to have cross VM influences on resource requests for CPU, DISK, MEMORY and NETWORK, the classical cross of system constraints. When multiple VMs request access to a common resource they Hypervisor needs to arbitrate the requests and one (or more likely) VMs will have to wait. This slows your virtual user execution and is very often mistaken for a slow system, particularly in environments where no control generator running on physical hardware has been deployed to act as a check against the VM skew.
  3. Reproducibility. How will you get the other VMs used by other users to behave in exactly the same way at the same points during your test to provide the exact same influences upon your virtual user assuming the Hypervisor makes the exact same decisions on resource access arbitration..... Well, you can see what the core issue is here. Running in a VM environment makes it almost impossible to reproduce the same problem in the exact same fashion because of the uncontrolled influences of the other virtual machines. You might have a better chance at reproduction with a physical performance test, even if you do feed the students on the laptops a different amount of beer and pizza prior to the execution of the test. Ultimately if a test is not reproducible, then it is not a test, it is a statistical anomaly.

You are correct on your issue of the cloud and virtualization. However you may want to add another uncontrolled influence on your test, that of a complex network. Stakeholders always want to know "how the application scales" and when you add a large complex network you wind up with something like the following

X (Application Response Time)
+Y (Network Response Time)
+Z (Virtualization Skew)
Total Response Time

Please solve for 'X,' because this is what the stakeholder is interested in primarily. After you solve for 'X,' then you can investigate 'Y' by looking at control users across the network for their change in response time as compared to the "known good" on the application front. Then, once 'X' and 'Y' are known it becomes a whole lot easier to investigate 'Z.'

Where you find virtualized load generators in use within a performance test practices you can apply about a 95% certainty that the group has other test process issues and test integrity issues that also need to be addressed. Why? This points out both test integrity and architectural knowledge gaps in the group.

Generators are cheap, relatively speaking. For 300-500USD you can purchase a fairly powerful machine (dual core, 4 gig RAM, 250-500GB HD) capable of supporting substantial load. Purchase three identically configured hosts and you have a highly reliable set of two primary load generators and a 'control generator' with which you can determine if your generators are becoming the bottleneck on the test (Process issue). These days I am recommending that clients purchase seven, one for your tool controller, one for a hot spare, one for a control generator and four for primary load generation. Why seven? It is still the case that one in seven PCs will fail in any given year. With a hot spare you can at least cannibalize a part or move the machine in total into the test bed as needed. You can also use it to re-balance the load if you find that your load generators are a bottleneck.

James Pulley

Director of Professional Services, PowerTest
Chief Technical Officer, The ScriptFarm offsite Performance Test Services
Moderator
LoadRunner Yahoo Group
Advanced LoadRunner Yahoo Group
SQAForums WinRunner Forum
SQAForums LoadRunner Forum
SQAForums Cloud Testing Forum

Storm on Demand - Pay Per Test

Storm on Demand Users Cost
1,000 $39.90
5,000 $199.50
10,000 $399.00
25,000 $997.50
50,000 $1,995.00
100,000 $3,990.00
200,000 $7,980.00

performance testing sign upIt's easy. You can be load testing in 15 minutes.

  1. Click the "Free Account" button.
  2. Enter your name & email address.
  3. Click the confirmation link in an email.
  4. Create a test scenario for your site.
  5. Run a load test.
  6. Analyze the test results.
  7. Send us a testimonial because you are amazed!

Customers love our load testing tool

“We needed an easy & cost effective way to load test our Windows Azure solution. Thanks to LoadStorm - highly recommended!” - Jonas Stawski, Microsoft MVP

"LoadStorm is a very useful tool." Alan Cheung, Manager - Technical Services, Dow Jones Publishing Company

"It has been a pleasure to work with LoadStorm." - Mike Compton, V.P. of I.T., Hearst Business Media

"Load-testing in the cloud was a great solution and LoadStorm a dream partner. " - Julie Hansen, COO, Publisher, The Business Insider

"There was no risk because I knew what the tool would provide before spending a dime. LoadStorm is a great tool." - Richard Ertman, QA/Release Manager, PETA

"I am definitely a fan of LoadStorm. I like its ease-of-use and the way in which the solution scales." - Darin Creason, Sr. Software Engineer, TransCore Corp

Want a Live Demo? Have Questions?

Please feel free to contact us:

(970) 389-1899

We are eager to help you with LoadStorm in any way that you need.