Load testing is fun. Breaking things is fun. Breaking WordPress with load testing is even more fun. But in the era of highly scaleable WordPress hosting solutions, can we even break WordPress anymore? Oh yes, yes we can. The Crucible Challenge can.
The Crucible WordPress Performance challenge is a deceptively simple test inspired by the poor ops teams that have to handle traffic from Super Bowl advertisements. Given a WordPress site with consistent content and URL mappings:
- Handle 50,000 (@ 500 per second ramp up) concurrent authenticated users for 2 hours with load test generators in New York, London, Amsterdam, Singapore, Bangalore, San Francisco, Toronto and Frankfurt.
- Have an error rate below 0.1%.
- Average response time should be below 800ms.
- Median response time should be below 700ms.
- 99th percentile response time should be below 800ms.
- Half way through the test, you must flush your cache.
Simple, yes. Easy, no. Why is this hard?
- 50,000 is a LOT of people.
- 500 per second ramp up does not give any time for warming your cache. It’s like your site getting hit in the face with a sledgehammer.
- Low error rate doesn’t give you a lot of room for problems.
- Keeping your response times below 1000ms with traffic coming from all over the world presents interesting problems.
- Flushing your cache after the load test is already in progress shows us you have a good cache invalidation strategy and can handle dog-piling.
To give everyone an idea of what results might look like, I took at $160 / month CPU Optimized Digital Ocean droplet, put Open LiteSpeed + WordPress on it and ran The Crucible against it.
I only ran the test for 2 minutes, but as you can see it started to max out near the 18,000 req/s mark, with failures in 1,800 failures/s area.
Can your service beat this? Want to find out? Drop an email to firstname.lastname@example.org and we can get a test run scheduled.