We still have a lot of work to do, but the progress so far is really good.
We have a great test suite designed where we can deploy any number of test servers to emulate any number of runners registering for a race. We can also deploy any number of webservers to handle the load. The test servers collect all the stats and report them back to a central repository (we are collecting 600 MB+ of data per test), where we generate the nice report at the bottom of this blog.
Here’s a simplified diagram of the setup (see a fuller description here):
Here is the output from the latest test emulating 4,000 runners hitting the website at once, with a 5-10 second random wait time for each runner to fill in each page (real people will be much slower to fill in their names and T-Shirt sizes, donation amounts, join teams and the credit card numbers – os it is a worst case scenario). In this test, we had 26 test servers and 26 web servers (each handling about 160 runners). All 4,000 runners completed their 7 step registration in 2 minutes and 14 seconds. This translates to 111,954 registrations per hour. Still not where we want it to be, but getting there.