I have experience with Amazon?s?AWS?cloudservices for years now, but still have problems with EBS (=amazon network storage) performance. ?It is not very fast and if you just want to run a simple LAMP server it requires a lot of work and experience to set it up the right way. But how fast is it? How does it compare to the offerings from?Linode?and the new kid on the block: DigitalOcean? ?Both have their own advantages: Linode has it?s standard 8 core architecture and RAID. DigitalOcean has fast SSD disks. But how do they stack up against Amazon?

Compare same-priced offerings

To compare apples with apples instead of oranges, I decided to test the following offerings:

Amazon Small instance with high-utilisation reserved instance ($24 per month)

Linode 1Gb plan ($20 per month)

DigitalOcean ($20 plan)

What do they offer for this price?

Amazon:?1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of local instance storage. But the local storage can not be used for permanent storage, as it is ephemeral (destroyed upon server termination). So you need additional EBS storage attached to your instance, which adds to the cost. Also this is with only 1GB outgoing data transfer, additional data costs $0.12 per GB. EBS storage is $0.10 per GB per month, so add $2 per month for 20 GB of EBS.

Linode: 1GB of memory,?24 GB RAID Storage, 8 cores with lowest priority, 2 TB data transfer included. Additional data at $0.10 per GB.

Digitalocean: 2GB memory, 2 cores, 40 GB SSD storage, 3 TB transfer included, additional data transfer $0.02 per GB

Note that Amazon can cost a lot more if your data transfer is higher. If you really need 2 TB outgoing traffic, Amazon bills you a hefty $240 additional cost.

Benchmarking

For this test I used Amazon Linux (Fedora style distro) for EC2 and Centos 6.4 for Linode and DigitalOcean, Apache 2.2.x, PHP 5.3.x, MySQL and AB for the test.

I requested a PHP page that shows a calender of events, which it fetches from the database, does some layouting and shows the result. It is build upon Laravel 3.

I did multiple AB tests.

100 requests and a concurrency of 10. (ab -n 100 -c 10) 500 requests with a concurrency of 10 (ab -n 500 -c 10) 1000 requests with a concurrency of 20 (ab -n 1000 -c 20) 2000 requests from 2 different machines each with a concurrency of 40. (ab -n 2000 -c 40 on both machines at the same time)

The tests were run from an independent server hosted by another company.

These are the results:

test Req/sec Time/req transferrate load Linode -n 500 -c 10 66,47 150 2743 Linode -n 100 -c 10 60,25 165 2529 Linode -n 100 -c 10 53,73 186 2254 Linode -n 500 -c 10 67,25 148 2778 Linode -n 100 -c 10 64,12 156 2655 Linode -n 1000 -c 20 78,52 254 3243 3,22 Linode -n 2000 -c 40 42,23 947 1743 14,95 test Req/sec Time/req transferrate load Amazon -n 100 -c 10 4,51 2216 190 Amazon -n 100 -c 10 4,39 2280 185 Amazon -n 500 -c 10 4,59 2177 193 8,15 Amazon -n 1000 -c 20 4,51 2435 190 17,06 Amazon -n 2000 -c 40 2,24 17830 94 18,5 test Req/sec Time/req transferrate load DigitalOcean -n 100 -c 10 26,4 378 1107 DigitalOcean -n 500 -c 10 34,09 293 1407 DigitalOcean -n 100 -c 10 28,24 354 1165 DigitalOcean -n 500 -c 10 33,94 294 1401 6,53 DigitalOcean -n 100 -c 10 29,26 341 1207 DigitalOcean -n 1000 -c 20 32,7 611 1345 12,45 DigitalOcean -n 2000 -c 40 18,2 2112 712 14,35

During the tests I run top on each server and wrote down the highest server loads for the bigger tests.

Conclusion

Well, Amazon just sucks. At only 4.5 request per second it is about 15 times SLOWER than the Linode box. Is this due to the slow EBS volumes or is this due to their 1 ECU compute unit? ?Looking at the high load figures, the problem seems CPU-bound in Amazons case.

DigitalOcean is about half the speed of Linode, in spite of their fast SSD disks. But they are stilll 6 times faster than Amazon.

But the winner without any doubt is Linode. Their 8 core server really rocks in this case.

I have to rethink my Amazon strategy. Is Amazon overpriced? Do I need expensive high-CPU instances to compete with the Linode performance? It seems linode has the best cards in this space currently, and the differences are too big to ignore.

Published with author consent. Originally published on Cosninix?the blog of the author Ronald van Woensel.