Linode and Digital Ocean WordPress Benchmarks
I've dedicated some time to measure WordPress performance on Linode and Digital Ocean VPSs, here are my results.
These days I prefer static sites when possible or using scalable app platforms like Heroku, though I still maintain and need to run some projects in WordPress on a VPS.
I've had a WordPress site hosted on a Linode 1024 ($20/month) instance for years, which has been rock solid. Though when Linode released the new SSD option some time ago, I've been on the fence if I should retire my old instance and migrate the site to a new SSD instance.
Especially as the new SSD instances looked cheaper, with $10/month for the 1GB instance versus the $20/month I currently paid for my old non-SSD 1GB instance.
A no brainer? Yes initially, but then after checking the specs for the SSD instances, I noticed that the new instances were running on 1 CPU core, while my old instance ran on 8 CPU cores. Could make quite a difference. Right?
So I decided to do some benchmarking before switching, to see if I could get the same performance for a better price, and while I was at it, also benchmarking Digital Ocean at the same time, as I'd been looking at them as an alternative.
Benchmarking Performance
I setup 5 different VPS instances to compare with my current, and installed an identical setup on each. Ubuntu 12.04 LTS x64, Apache 2.2.22, MySQL 5.5.38, PHP 5.3.10. Of course also a clone of the WordPress site and database in question.
Every instance was created in the London center for each company, and I used ApacheBench with 1000 requests and then different numbers of concurrent requests. I started with 20 concurrent requests and then went down to 10, and then finally to 5, for each instance.
I also did a second test with every 5 concurrent where I requested a more database heavy page. The initial page had 9 database queries, while the second test, 5(+), where to a page with 16 database queries.
DO $5 | DO $10 | DO $20 | Linode 1GB | Linode 2GB | Linode 1024 | |
---|---|---|---|---|---|---|
20 | Died | 159s | 77s | 171s | 67s | 80s |
10 | Died | 154s | 69s | 184s | 65s | 82s |
5 | 139s | 153s | 70s | 172s | 65s | 93s |
5(+) | 216s | 241s | 99s | 284s | 96s | 148s |
Conclusion
The first most obvious conclusion to draw, is that every instance with only 1 CPU core does not perform very well with WordPress (DO $5, DO $10, Linode 1GB). I had to drop any previous thoughts to be able to cut down the monthly cost.
My old Linode 1024 despite no SSD and less RAM kept up quite well with both the DO $20 and the Linode 2GB. I guess the 8 CPU Cores help quite a bit. Though on heavier database access, 5(+), the performance gap where more obvious. As the Linode 2GB outperformed the other instances in every test, and had the same price as I currently paid for my old, I ended up just switching within Linode to the 2GB option.
No money saved, but increased performance for the same buck, especially on database heavy pages.
For further detailed data from the tests, with some additional interesting numbers, I've collected more from the ApacheBench results in a Google Spreadsheet.