A ton has changed since this post was originally published! Why not check out a more recent post?


I’ve done quite a few of these comparison posts and I have always stuck with the inexpensive plans. I figured, what the hell, let’s see how Linode and DigitalOcean stack up when running larger, comparably priced plans! The price point for this comparison is 640$ per month or around 96¢ per hour.

Right out of the gate, Linode and DigitalOcean have slightly different pricing in regard to hourly billing. Linode is adverting a flat 96¢ while DigitalOcean is at 95.2¢ per hour. If you are paying monthly they both come out to 640$. Linode also advertises a larger plan than this but this is DigitalOcean’s largest advertised plan. It does appear that DigitalOcean can provide a larger plan if you contact them, but that seemed a bit out of scope for this article.

Before we get into the benchmarks, let’s take a look at what you’ll be getting for 640$ a month:

  Linode DigitalOcean
Monthly Rate 640$ 640$
Hourly Rate 96¢ 95.2¢
RAM 64 GB 64 GB
CPU 20 cores 20 cores
SSD Storage 1,536 GB 640 GB
Transfer 20 TB 9 TB
Network In 40 Gbps 1 Gbps
Network Out 8,000 Mbps 1 Gbps

No advantage for either hosting company for RAM and CPU cores but Linode takes every other category. What’s most interesting is the amount of SSD storage that Linode is able to provide for the price considering they were initially quite slow to offer SSD storage.

Please keep in mind that the network in/out for DigitalOcean may not be accurate as I used the same values as my last comparison. DigitalOcean still doesn’t advertise their network speeds on their site the way that Linode does. Would be awesome if someone from DO could clarify this in the comments below. Thanks to Michael Guerin (from DO) for the network in/out clarification!!

So now that we know what we’re getting, let’s check out how each server performs. Setting each each server only took a few minutes. DigitalOcean’s setup is a bit faster (clocking in at under 1 minute) because you don’t have to manually deploy your distro the way you do with Linode. Even though Linode took a bit longer, less than 3 or 4 minutes, the time it took was quite tolerable.

One interesting thing to note is that while Linode allows you to scale boxes up and down, DigitalOcean only lets you scale a droplet up. This is quite the shortcoming if you are scaling up to handle a spike in traffic and then would like to scale back down afterwards.

Before getting into the benchmarks, I wanted to note that to enable the larger plans with DigitalOcean, you must open a support ticket to request verification. The process was quick (less than 5 minutes I think) and quite painless. You simply provide a bit of information and you’ll be on your way!

To ensure that this is an apples to apples review, I opted to spin up bot server instances in London, England because that was the only location that both companies have a data center. Both boxes are running the latest Ubuntu LTS release, 14.04, 64-bit edition. As always, I went ahead and made sure that both servers were up to date and installed the necessary packages for the benchmarks and rebooted:

sudo apt-get update && apt-get upgrade
sudo apt-get install sysbench mysql-server
sudo reboot

I also disabled swap on the Linode box since DigitalOcean doesn’t create a swap partition as part of their setup wizard:

swapoff -a

Let’s take a look at the benchmark results for each category. The sysbench commands are also provided in case you want to try these benchmarks out for yourself.

CPU

sysbench --test=cpu run
  Linode DigitalOcean
Number of Events 10,000 10,000
Execution Time 9.7577s 12.8024s
Minimum Request 0.93ms 1.16ms
Maximum Request 1.14ms 2.92ms
Average Request 0.97ms 1.28ms

Memory (read)

sysbench --test=memory run
  Linode DigitalOcean
Number of Events 104,857,600 104,857,600
Execution Time 348.2640s 86.3729s
Minimum Request 0.00ms 0.00ms
Maximum Request 1.88ms 0.52ms
Average Request 0.00ms 0.00ms
MB/second 294.03 MB/s 1,184.19 MB/s

Memory (write)

sysbench --test=memory --memory-oper=write run
  Linode DigitalOcean
Number of Events 104,857,600 104,857,600
Execution Time 346.2093s 83.6330s
Minimum Request 0.00ms 0.00ms
Maximum Request 0.30ms 0.44ms
Average Request 0.00ms 0.00ms
MB/second 295.77 MB/s 1,224.40 MB/s

File I/O

sysbench --test=fileio --file-total-size=100G prepare
sysbench --test=fileio --file-total-size=100G --file-test-mode=rndrw run
sysbench --test=fileio --file-total-size=100G cleanup
  Linode DigitalOcean
Number of Events 10,000 10,000
Execution Time 1.3770s 4.4776s
Minimum Request 0.01ms 0.01ms
Maximum Request 4.60ms 20.72ms
Average Request 0.09ms 0.25ms
Requests/second 7,262.01 Req/s 2,233.34 Req/sec

MySQL

sysbench --test=oltp --oltp-table-size=10000000 --mysql-db=test --mysql-user=root --mysql-password=password prepare
sysbench --test=oltp --oltp-table-size=10000000 --mysql-db=test --mysql-user=root --mysql-password=password run
sysbench --test=oltp --oltp-table-size=10000000 --mysql-db=test --mysql-user=root --mysql-password=password cleanup
  Linode DigitalOcean
Number of Events 10,000 10,000
Execution Time 33.2434s 52.0775s
Minimum Request 2.21ms 2.30ms
Maximum Request 29.16ms 56.02ms
Average Request 3.32ms 5.20ms
Read/write Requests/second 5,715.42 Req/sec 3,648.41 Req/sec

Conclusion

As you can see from the benchmarks, Linode’s CPU and SSD offerings perform better than DigitalOcean’s. Where DigitalOcean excels is reading and writing from RAM. This is pretty consistent with what I observed on the lower plans, thus both hosts scale predictably. Depending on what you plan to do with the server, you realistically could make the case for either hosting company.

Even though Linode fell short on memory reads and writes, the maximum time to execute was lower than DigitalOcean for writes. If nothing else, it would appear that Linode’s write performance is a bit more predictable albeit slower.

If I had to pick a winner, I would have to say that the high volume server from Linode performs better across the board than DigitalOcean’s comparable droplet. If your application is heavy on RAM reading and writing, DigitalOcean may better suit your needs as the server was capable of moving 4 times the megabytes per second than the Linode server.

As always, YMMV as these are simply benchmarks and not necessarily indicative of real world usage.

If you found the article helpful, please help me out by using my referral links for Linode and/or DigitalOcean.





Did you enjoy this post?

Cool if I slip into your inbox with more?
Full posts, 1-2 times per week: