How MySpace tested 1M concurrent users on Amazon EC2 with 800 virtual servers

Dan Bartow, VP of SOASTA, a load and performance testing company posted a guest blog on the High Scalability website detailing how they used SOASTA CloudTest to simulate 1 million concurrent users on MySpace using 800 Amazon EC2 instances.

In December 2009 MySpace launched a new wave of streaming music offerings in New Zealand, and because of the expected increase of load they wanted to test these features before making them live.

In order to test this increase in load, the load was tested by using 1 million concurrent users using the new streaming features, by supplementing the live traffic with test traffic generated using SOASTA CloudTest. CloudTest was used to provision the 800 EC2 instances using the Amazon EC2 API, making it possible to provision 800 servers in less than 20 minutes.

SOASTA_Cloudtest

Load Generators running on top of the 800 EC2 instances running Fedora Core 8 reported their status back to single analytics service, which reported their performance data to a repository hosted in a PostgreSQL database.

"…Lessons Learned

1.For high traffic websites, testing in production is the only way to get an accurate picture of capacity and performance. For large application infrastructures there are far too many ‘invisible walls’ that can show up if you only test in a lab and then try to extrapolate.

2.Elastic scalability is becoming an increasingly important part of application architectures. Applications should be built so that critical business processes can be independently monitored and scaled. Being able to add capacity relatively quickly is going to be a key architecture theme in the coming year and the big players have known this for a long time. Facebook, Ebay, Intuit, and many other big web names have evangelized this design principle. Keeping things loosely coupled has a whole slew of benefits that have been advertised before, but capacity and performance are quickly moving to the front of that list.

3.Real-time monitoring is critical. In order to react to capacity or performance problems, you need real-time monitoring in place. This monitoring should tie in to your key business processes and functional areas, and needs to be as real time as possible…"