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


13 min read
reviews
hosting
linode
digitalocean
lightsail

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

  Linode DigitalOcean Lightsail Vultr
Memory 8GB 8GB 8GB 8GB
Processor 4 Cores 4 Cores 2 Cores 6 Cores
Storage 96GB SSD 80GB SSD 80GB SSD 150GB SSD
Transfer 4TB 5TB 5TB 5TB
Overage $0.02/GB $0.02/GB $0.09/GB $0.02+/GB
Network In 40Gbps 1Gbps ??? ???
Network Out 1000Mbps* 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 aa 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 /etc/proc
  Model Name CPU MHz Cache Size BogoMips
Linode Intel Xeon E5-2680 v2 2,799.998 4096 KB 5,602.32
DigitalOcean Intel Xeon E5-2650L v3 1,799.998 30720 KB 3,599.99
Lightsail Intel Xeon E5-2676 v3 2,394.516 30720 KB 4,789.03
Vultr Virtual CPU x7769a6388d5 2,394.454 4096 KB 4,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
  Linode DigitalOcean Lightsail Vultr
Number of Events 10,000 10,000 10,000 10,000
Total Time 11.8893s 15.5159s 11.3562s 12.4066s
Event Execution 11.8870s 15.5128s 11.3544s 12.4039s
Minimum Request 1.16ms 1.31ms 1.03ms 1.08ms
Average Request 1.19ms 1.55ms 1.14ms 1.24ms
Maximum Request 1.67ms 2.12ms 1.34ms 5.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
  Linode DigitalOcean Lightsail Vultr
Number of Events 104,857,600 104,857,600 104,857,600 104,857,600
Total Time 42.5862s 101.7082s 74.5845s 57.1285s
Execution Time 35.2345s 80.7922s 59.2416s 46.3418s
Minimum Request 0.00ms 0.00ms 0.00ms 0.00ms
Average Request 0.00ms 0.00ms 0.00ms 0.00ms
Maximum Request 4.64ms 4.59ms 0.09ms 1.95ms
Operations/sec 2,462,244.11 1,030,965.05 1,405,890.46 1,835,469.80
MB/sec 2,404.54 1,006.80 1,372.94 1,792.45

Memory Writes

sysbench --test=memory --memory-oper=write run
  Linode DigitalOcean Lightsail Vultr
Number of Events 104,857,600 104,857,600 104,857,600 104,857,600
Total Time 42.8455s 102.1230s 74.4461s 59.5757s
Execution Time 35.4619s 81.1366s 59.1153s 48.3579s
Minimum Request 0.00ms 0.00ms 0.00ms 0.00ms
Average Request 0.00ms 0.00ms 0.00ms 0.00ms
Maximum Request 4.65ms 0.85ms 0.08ms 2.13ms
Operations/sec 2,447,343.98 1,026,777.30 1,408,503.45 1,760,072.84
MB/sec 2,389.98 1,002.71 1,375.49 1,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
  Linode DigitalOcean Lightsail Vultr
Number of Events 10,000 10,000 10,000 10,000
Total Time 1.9160s 1.4093s 3.0151s 1.5636s
Execution Time 0.1436s 0.1780s 0.0600s 0.1272s
Minimum Request 0.00ms 0.00ms 0.00ms 0.01ms
Average Request 0.01ms 0.02ms 0.01ms 0.01ms
Maximum Request 0.26ms 0.18ms 0.13ms 0.40ms
Requests/sec 5,219.18 7,095.61 3,316.66 6,395.59
MB/sec 81.55 110.87 51.823 99.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
  Linode DigitalOcean Lightsail Vultr
Number of Events 10,000 10,000 10,000 10,000
Total Time 33.4307s 41.6779s 39.5449s 51.3936s
Execution Time 33.3771s 41.6069s 39.5024s 51.2897s
Minimum Request 2.36ms 2.40ms 2.14ms 2.13ms
Average Request 3.34ms 4.16ms 3.95ms 5.13ms
Maximum Request 26.13ms 65.62ms 30.92ms 1,667.56
Read/write Requests/sec 5,683.40 4,558.77 4,804.67 3,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/
  Linode DigitalOcean Lightsail Vultr
Concurrency Level 1,000 1,000 1,000 1,000
Time taken 5.702s 1.410s 1.420s 5.802s
Completed Requests 10,000 10,000 10,000 10,000
Failed Requests 569 303 178 456
Requests/sec 1,753.72 7,090.77 7,044.18 1,723.59
Time per request 570.216ms 141.028ms 141.961ms 580.185ms
Transfer rate Kbyte/sec 18,768.15 78,099.35 78,585.94 18,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
  Linode DigitalOcean Lightsail Vultr
Download Mbit/sec 313.37 519.12 339.60 705.47
Upload Mbit/sec 91.51 81.80 88.45 101.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 crazy 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.

And it wouldn’t be me if I didn’t mention that you’d be one of my favorite people ever if you not only found this post helpful, but if you used my affiliate link when signing up for whichever hosting company you end up going with. A few amazing promos for you:

Comment below or tweet at me if you end up signing up!