High Volume Showdown: Linode vs. DigitalOcean

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.


If you have found these posts informative and helpful in searching for a new hosting provider, please consider using one of the links below when signing up:

  • DigitalOcean, new accounts receive $200 in credit (good for 60 days)
  • Linode, new accounts receive $100 in credit (also good for 60 days)
  • Vultr, new accounts also receive $100 in credit (good for only 14 days)
  • UpCloud, new accounts receive €25 in credit (yes, that’s in Euros)
Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.