2013 VPS Benchmarks - Linode, Digital Ocean, Hot Drupal

Every year or two, I like to get a good overview of different hosting providers' VPS performance, and from time to time, I move certain websites and services to a new host based on my results.

In the past, I've stuck with Linode for many services (their end-to-end UX, and raw server performance is great!) that weren't intense on disk operations, and Hot Drupal for some sites that required high-performance IO (since Hot Drupal's VPSes use SSDs and are very fast). This year, though, after Digital Ocean jumped into the VPS hosting scene, I decided to give them a look.

Before going further, I thought I'd give a few quick benchmarks from each of the providers; these are all on middle-range plans (1 or 2GB RAM), and with the exception of Linode, the disks are all SSD, so should be super fast:

Disk Performance

Disk Performance Chart

(I used the command dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync for a simple benchmark, which writes and reads a 512MB file to disk. These results were averaged over three test runs).

Linode: 60.9 MB/s
Digital Ocean: 230 MB/s
Hot Drupal: 244 MB/s

The clear loser for disk I/O seems to be Linode; since they have spinning disks in RAID, it's not much of a surprise, though. I'm not sure exactly how Digital Ocean and Hot Drupal's SSDs are set up, but I'm presuming they have either a SAN built with SSDs, or an SSD per server (hopefully RAID, but I keep external backups no matter what :D).

CPU Performance

CPU Performance Chart - 1 ThreadCPU Performance Chart - X Threads

(I used the command sysbench --test=cpu --cpu-max-prime=20000 run for a simple benchmark (and added --num-threads=X to run a multithreaded version). This requires sysbench to be installed on the server).

Linode (8 CPU / 2.26 Ghz / 4533.56 bogomips): 105.5477s on 1 thread, 25.0219s on 8 threads
Digital Ocean (2 CPU / 2.0 Ghz / 3999.99 bogomips): 38.8598s on 1 thread, 18.8307s on 2 threads
Hot Drupal (6 CPU / 3.2 Ghz / 6400.00 bogomips): 23.7397s on 1 thread, 4.1549s on 6 threads

This was much more surprising; I expected Linode to thrash the other guys in terms of raw CPU performance, but both Digital Ocean, and especially Hot Drupal, killed the CPU test (especially if you increase the number of threads and use all the virtual CPU cores available!).

I've actually noticed that PHP processing time is noticeably faster (from an end user's perspective) on Hot Drupal, and now I have a number to back it up; when browsing around a Drupal site's admin backend, page loads sometimes take .5-1s less on Hot Drupal than on other servers (even my local MAMP server).

Note that this CPU measure is by no means comprehensive... but it does give an overall look at how CPU-bound workloads will be handled by the different VPSes.

Memory (RAM) Performance

RAM Performance Chart

(I used the command sysbench --test=memory --memory-total-size=1G run). This requires sysbench to be installed on the server).

Linode: 89.33 MB/sec
Digital Ocean: 650.01 MB/sec
Hot Drupal: 433.57 MB/sec

Of the three servers, the Hot Drupal server was by far the most stable, with all three memory tests within 1 MB/sec of each other. Linode and Digital Ocean were +/- 10%. As with the CPU tests, I was surprised by how slow the Linode memory access was in these tests; I would've expected much faster performance.

General Impressions

Linode

I have a few servers with Linode, and all of them have only been restarted by me. One of the servers is up to 460 days uptime, and the other two are approaching a year. Linode is a very reliable company, and support tickets are closed within minutes. Their management dashboard is very intuitive, and everything I've hosted with them has been reliable and relatively fast. In recent months, they've started providing free upgrades to disk, CPU, and memory for all their plans, but they seem to be on the more expensive side of current VPS plans. Whether that expense is justified depends on how reliable and secure Linode remains.

The fact that their public site is still built on ColdFusion, and thus has run into security issues recently, makes me very slightly nervous... but not enough to move some of my existing for-pay services off of Linode VPSes. Plus, their infrastructure, geographic diversity, and management tools are top-notch, and are great for multi-server setups. Their Linode Library is my benchmark for Linux how-tos and tutorials, and is very complete. Their Linode Forums also contain a great community and wealth of knowledge.

Digital Ocean

Digital Ocean seems to have set up their infrastructure well, but it is nowhere near as mature as Linode. They offer DNS services, but no droplet load balancing, no private network (all inter-server communication is metered with your public bandwidth), only three geographical locations for droplets, and their admin console is a little underwhelming. The signup and provisioning process is very nice, and their billing system is very simple and easy to understand.

The biggest things they have going for them right now are price, and ease of use (in that order). Their Community section has many articles and how-tos, in addition to a growing forum, but is not as complete or concise as the Linode Library. This will improve with time, I'm sure, but Digital Ocean still has a ways to go.

Hot Drupal

Hot Drupal is more of a niche hosting provider, but they've been around a while, and offer some very good plans for PHP CMSes, most especially Drupal. I've put some clients on their shared plans, which are much nicer and faster than shared plans from other companies (HostGator, DreamHost, etc.), and on VPSes (which, as noted above, are very fast!).

Hot Drupal is a bit more expensive than other providers, and their admin console is not as full-featured as Linode's (it's more on par with what you get from Digital Ocean), but their support has always been amazing—they'll go out of their way to help you with any hosting-specific problems, and often will even help with Drupal-related problems. Most tickets I've opened with Hot Drupal have been responded to within minutes, and often their support staff will resolve the issue within 5-10 minutes. And did I mention their servers are fast?

Conclusion

For now, I'm sticking with a few VPSes across all three services, because none is a 'one-size-fits-all' hosting provider. Linode and Hot Drupal both have great track records (for me, at least), and I will be cautious considering Digital Ocean for larger projects until I've had more experience with them, and seen how fast they respond to outages and support tickets.

Digital Ocean's low, low prices are very tempting, though, for most of my smaller sites and services, and throwing $5/month at a few small servers for experimentation and testing is nothing; many shared hosts are more expensive than that!

If you're thinking of signing up for Linode, please consider using my Linode affiliate signup link :)

Comments

I was just informed of a service I had never seen before that compares VPS performance across many different providers: http://serverbear.com/bearscore/vps - looks like a nice tool for a broad overview.

Of course, every application performs differently, so I still like doing my own benchmarking once I narrow it down.

I just signed up for a really, really cheap RamNode server, too. Might add them to results here.

digital ocean seems good, but since i am living in china, linode's tokyo equivroom is a decisive feature to me

Yeah, geographical diversity is one area that Linode has over most other VPS providers.

What plans did you test on on all three providers? It's not mentioned?

Sorry about that:

  • 1 GB RAM plan from Linode ($20/month)
  • 2 GB RAM plan from Digital Ocean ($20/month)
  • 2 GB RAM plan from Hot Drupal ($59/month)

Thanks for the mention Jeff, any feedback on how we can improve is welcomed :)

Is there a simple way to filter the lists to only compare some selected hosts? That's the only thing that would make your service more effective for me, and it wasn't immediately obvious how to do that.

Thanks, always good to know what offers are on the market, i hope to include the number of I/O per second for read/write of small files 4K in size, also to include vps from contabo.com .

Some stats for RamNode (using their cheapest SSD+HDD plan, with 128MB RAM, $24/year):

  • Disk (50GB): 449.33 MB/sec
  • CPU (1 core, 2.3 GHz, 4600 bogomips): 39.96s
  • RAM (512MB): 455.35 MB/sec

Pretty impressive, at $2/month! Their offering seems pretty good, and they've now been around a while.

Digital Ocean are a great provider. Can't reccomend them enough! To anyone who is interested they have just launched their new data center in NY! Use the promo NY2SSD5 at www.digitalocean.com to get a 512MB free droplet for one month in NY!

Here is my OVH 32 GB Dedicated Server Test.

root@dozer:~# sysbench --test=cpu --cpu-max-prime=20000 --num-threads=8 run
sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 8

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000

Test execution summary:
total time: 3.3990s
total number of events: 10000
total time taken by event execution: 27.1785
per-request statistics:
min: 2.62ms
avg: 2.72ms
max: 5.58ms
approx. 95 percentile: 2.72ms

Threads fairness:
events (avg/stddev): 1250.0000/0.71
execution time (avg/stddev): 3.3973/0.00

On 1 thread :

root@dozer:~# sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 1

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000

Test execution summary:
total time: 22.1139s
total number of events: 10000
total time taken by event execution: 22.1133
per-request statistics:
min: 2.21ms
avg: 2.21ms
max: 5.31ms
approx. 95 percentile: 2.21ms

Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 22.1133/0.00

You forgot to Add Network Speed Tests. It also plays a vital role in web app performance.

Here is what i get: http://www.speedtest.net/result/2909375355.png

Here is Amazon EC2 ( t1.micro ) http://www.speedtest.net/result/2909368612.png

root@biggenius:~# speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Digital Ocean (192.241.190.145)...
Selecting best server based on ping...
Hosted by Optimum Online (New York City, NY) [1.56 km]: 88.93 ms
Testing download speed........................................
Download: 475.75 Mbit/s
Testing upload speed..................................................
Upload: 54.46 Mbit/s

Anyway , i like your blog design. It uses Drupal too?

Yes - it's a slightly modified version of MM - Minimalist theme (which is maintained by Midwestern Mac).

Digital Ocean IO performance along with network speed test

root@biggenius:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 1.78476 s, 602 MB/s
root@biggenius:~#

Testing download speed........................................
Download: 475.75 Mbit/s
Testing upload speed..................................................
Upload: 54.46 Mbit/s

Great post. I'm currently with GreenGeeks using their SSD-cached VPS servers, and I thought I would do a test based on your bench marking.

Here are my results:

root@vps [~]# dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 3.35243 seconds, 160 MB/s

sysbench --test=cpu --cpu-max-prime=20000 run
44.4056s on 1 thread

sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4
11.2801s on 4 threads

sysbench --test=memory --memory-total-size=1G run
869.12 MB/sec

so when you say you ran it with num-threads=X what X values were you using here? number of cores? (just wanted to check to make sure you had it set to 8 for linode :)

Hi Jeff,
Thanks a lot for the long article and especially the "general impressions" section. It's always good to have user and admin real feedback (460 days uptime on a VPS talks to me :).
Just wondering if you've tried the SSD Linode new offer/upgrades? Any surprise (good or bad)?
Cheers,
Renaud

I have not yet tried any of the latest Linode offerings; Digital Ocean's great API, low prices, and support responsiveness has lured me away completely, and it will take a bit of effort for Linode to get me back :)

Thanks for the update :)

Those benchmarks are wrong, you should test more than 512MB of data for disk performance...

Those results are inline with we tested at http://www.vpsbenchmarks.com at the beginning of the year. It changed vastly when Linode switched to SSD and they are now the fastest on small plans.
Don't overlook EC2 plans like t2.small or Google Cloud Engine, they're pretty strong too and their pricing is becomming competitive.

hot drupal a bit more expensive though :|