8GB Showdown: Linode vs DigitalOcean vs Amazon Lightsail vs Vultr

Earlier this month I posted yet another of my $10 Showdown posts comparing Linode, DigitalOcean and the newcomer, Amazon Lightsail. The response was freakin’ amazing, I got a ton of great feedback and I figured I may as well follow up with a comparison of a larger plan.

Instead of doing a dollar for dollar comparison, I thought it would be fun to
compare similar memory offerings. I went with 8GB of RAM because Amazon doesn’t offer anything larger than that and all of the companies I’ll be comparing offer that size plan at the sub-$100 mark.

Also, I am now including Vultr in these comparisons because everytime I do one of these posts somebody squaks about them in the comments and on Twitter. Pun intended 😉

Overview

 LinodeDigitalOceanLightsailVultr
Memory8GB8GB8GB8GB
Processor4 Cores4 Cores2 Cores6 Cores
Storage96GB SSD80GB SSD80GB SSD150GB SSD
Transfer4TB5TB5TB5TB
Overage$0.02/GB$0.02/GB$0.09/GB$0.02+/GB
Network In40Gbps1Gbps??????
Network Out1000Mbps*1Gbps??????
Price$40/month$80/month$80/month$80/month
 $0.06/hour$0.119/hour$0.108/hour$0.119/hour

Right out of the gate you get more bang for your buck with Linode at half the
price of the other guys!

Like Lightsail, I couldn’t find any formal documentation on Vultr’s network
speeds. Their marketing material touts them as being 4x the speed of their
competitors. Their benchmarks only show them in comparison to Rackspace and AWS (I assume EC2, not Lightsail servers).

Vultr does excel in the number of CPUs and amount of storage but they are still
twice as much as Linode. They also price their bandwidth overage based on which region you are in. North America is $0.02 per gig but some regions are as much as $0.10 per gig. They also calculate bandwidth as either incoming or
outgoing, whichever is larger.

* On 2/14/2016 Linode announced $5 plans, high memory instances and bumped network out from 500Mbps to 1000Mbps for their Linode 8GB instances.

CPU Info

Somebody had suggested showing the output from /proc/cpuinfo. I thought it was a good idea but I didn’t want to show all of the output as it’s quite lengthy. All of the companies showed a vendor ID of GenuineIntel and here’s some data from /proc/cpuinfo that I thought was the most relevant / important:

cat /proc/cpuinfo
Zsh
 Model NameCPU MHzCache SizeBogoMips
LinodeIntel Xeon E5-2680 v22,799.9984096 KB5,602.32
DigitalOceanIntel Xeon E5-2650L v31,799.99830720 KB3,599.99
LightsailIntel Xeon E5-2676 v32,394.51630720 KB4,789.03
VultrVirtual CPU x7769a6388d52,394.4544096 KB4,788.90

Not entirely sure what Vultr’s CPU is compared to the others but the other
providers have fairly comparable chips. Linode and DigitalOcean are both touting 4 cores while Lightsail is only 2 and Vultr comes in ahead with 6 cores. Linode wins out if you’re concerned with the per-core speeds.

I thought it was interesting that both DigitalOcean and Lightsail had a significantly higher cache size compared to Linode and Vultr.

CPU Benchmarks

We know what kind of CPUs everybody is offering (well sorta… looking at you
Vultr 😉 but how do they stack up in a benchmark?

sysbench --test=cpu run
Zsh
 LinodeDigitalOceanLightsailVultr
Number of Events10,00010,00010,00010,000
Total Time11.8893s15.5159s11.3562s12.4066s
Event Execution11.8870s15.5128s11.3544s12.4039s
Minimum Request1.16ms1.31ms1.03ms1.08ms
Average Request1.19ms1.55ms1.14ms1.24ms
Maximum Request1.67ms2.12ms1.34ms5.94ms

Lightsail’s CPU performance squeaked by Linode’s by a few tenths of a second.
Almost too close to call. Vultr was a half second behind Linode for third while DigitalOcean brought up the rear 3 seconds slower than Vultr.

Even though Vultr’s average request wasn’t too bad, the maximum request was
nearly three times that of DigitalOcean’s.

Memory Benchmarks

Memory Reads

sysbench --test=memory run
Zsh
 LinodeDigitalOceanLightsailVultr
Number of Events104,857,600104,857,600104,857,600104,857,600
Total Time42.5862s101.7082s74.5845s57.1285s
Execution Time35.2345s80.7922s59.2416s46.3418s
Minimum Request0.00ms0.00ms0.00ms0.00ms
Average Request0.00ms0.00ms0.00ms0.00ms
Maximum Request4.64ms4.59ms0.09ms1.95ms
Operations/sec2,462,244.111,030,965.051,405,890.461,835,469.80
MB/sec2,404.541,006.801,372.941,792.45

Memory Writes

sysbench --test=memory --memory-oper=write run
Zsh
 LinodeDigitalOceanLightsailVultr
Number of Events104,857,600104,857,600104,857,600104,857,600
Total Time42.8455s102.1230s74.4461s59.5757s
Execution Time35.4619s81.1366s59.1153s48.3579s
Minimum Request0.00ms0.00ms0.00ms0.00ms
Average Request0.00ms0.00ms0.00ms0.00ms
Maximum Request4.65ms0.85ms0.08ms2.13ms
Operations/sec2,447,343.981,026,777.301,408,503.451,760,072.84
MB/sec2,389.981,002.711,375.491,718.82

Linode blew everybody away in both memory read and write performance even with having the highest maximum request time. Vultr was about 13 seconds behind with Lightsail another 11 seconds behind them. Yet again, DigitalOcean came in a distant last place.

File I/O Benchmarks

sysbench --test=fileio prepare
sysbench --test=fileio --file-test-mode=rndrw run
sysbench --test=fileio cleanup
Zsh
 LinodeDigitalOceanLightsailVultr
Number of Events10,00010,00010,00010,000
Total Time1.9160s1.4093s3.0151s1.5636s
Execution Time0.1436s0.1780s0.0600s0.1272s
Minimum Request0.00ms0.00ms0.00ms0.01ms
Average Request0.01ms0.02ms0.01ms0.01ms
Maximum Request0.26ms0.18ms0.13ms0.40ms
Requests/sec5,219.187,095.613,316.666,395.59
MB/sec81.55110.8751.82399.931

When I compared hosts at the $10 level, Linode performed twice as well as DigitalOcean (which was #2 in that benchmark). This time around, DigitalOcean
was able to handle the most requests and the most megabytes per second.

What was interesting was that the event execution time for DigitalOcean was more than everybody else even though it appeared to perform better.

MySQL Benchmarks

mysql -uroot -e "CREATE DATABASE sbtest;"
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root run
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root cleanup
Zsh
 LinodeDigitalOceanLightsailVultr
Number of Events10,00010,00010,00010,000
Total Time33.4307s41.6779s39.5449s51.3936s
Execution Time33.3771s41.6069s39.5024s51.2897s
Minimum Request2.36ms2.40ms2.14ms2.13ms
Average Request3.34ms4.16ms3.95ms5.13ms
Maximum Request26.13ms65.62ms30.92ms1,667.56
Read/write Requests/sec5,683.404,558.774,804.673,696.96

I feel like reading and writing to MySQL is one of the best metrics because not
only is it more of a real world use case, but because it is a combination of file I/O, memory and CPU.

Linode was able to handle more read / write requests per second than the others. Lightsail was the runner up with DigitalOcean just behind them. Vultr was at the tail end and had a terrible maximum request time, orders of magnitude slower than the others.

Apache Benchmarks

ab -kc 1000 -n 10000 http://127.0.0.1/
Zsh
 LinodeDigitalOceanLightsailVultr
Concurrency Level1,0001,0001,0001,000
Time taken5.702s1.410s1.420s5.802s
Completed Requests10,00010,00010,00010,000
Failed Requests569303178456
Requests/sec1,753.727,090.777,044.181,723.59
Time per request570.216ms141.028ms141.961ms580.185ms
Transfer rate Kbyte/sec18,768.1578,099.3578,585.9418,698.25

This is a new benchmark I haven’t included in the past. I slapped Apache on the
server and ran ab against the local host with 1,000 concurrency and keep-alive
for 10,000 requests.

With this benchmark, DigitalOcean seemed to handle requests the fastest and
Lightsail was able to transfer the most per second. Linode and Vultr brought up
the rear.

Network Benchmarks

In the past I’ve run speedtest-cli without specifying a server, resulting in
inconsistent results. This time around I opted to use the Houston server (keeping it local ;). Unfortunately, since not every company has a datacenter in
the same place, the results are still a bit mixed.

Other than Lightsail (which only offers instances in the Virginia datacenter) the other servers are in / around the New York / New Jersey area.

./speedtest-cli --server=7340
Zsh
 LinodeDigitalOceanLightsailVultr
Download Mbit/sec313.37519.12339.60705.47
Upload Mbit/sec91.5181.8088.45101.35

Vultr’s major claim is that they are 4x faster than Rackspace and AWS. These
results show them being faster than the competition, but not quite the 4x
multiple they are touting in their marketing material. They did come in first
for both upload and download speeds.

DigitalOcean came in second for downloads but last for uploads while Linode and Lightsail were somewhere in the middle.

Conclusion

Even with a mixed lot of data (most favoring Linode) it’s hard to skirt over the
fact that at the 8GB of RAM tier, Linode was half the price of everybody else.

That said, Linode was at the top end of the benchmark (either first or second)
more than another other company while DigitalOcean was consistently at the lower end of the benchmarks. Lightsail and Vultr fought it out in the middle.

Considering you can get comparable specs and performance for half the price,
Linode would be where I’d put my money for an 8GB server. Good chance that
Linode would blow everybody out of the water at the $80 price point considering it would be doubling everybody else’s offerings. Perhaps an $80 showdown in the future?

Something else worth noting was that when I was running benchmarks, the first time through with DigitalOcean on a fresh droplet was absurdly slow. So slow that I thought maybe something was terribly borked with the instance, so I trashed it and started over. It ran better the next time but I’ve never run into anything like that in the last few years of running these tests.

As mentioned in the past, your YMMV with these benchmarks and I may not have included something that you feel strongly about (like say, downtime or customer support or the option for block storage). I live for feedback, so comment below if there’s something I should be including for next time.


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.