VPS Showdown – March 2020 – DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr

Was really hoping to get another provider into the mix for March, of even get
some graphs / charts into the mix, but February really got away from me with
life stuff.

Been working my way up through the pricing tiers with the providers, and I’m not entirely sure when, but Amazon Lightsail was expanded to include two new plans at the $80 and $160 price points. Their UI claims they are new plans, at least.

Amendment 2020-03-03: Somebody pointed out that these “new” plans have
actually been around since 2018. I probably should have checked my previous
posts to see if I had in fact included those price points before.

With that, this month’s post is featuring 16 GB instances, in the $80-$96 price
range. The range is due to the fact that I’m still including Vultr’s High Frequency plan instead of their standard plans.

This choice made a ton of sense on the lower tiers because the price was fairly
negligible. At these higher priced tiers, the price difference, while still the same percentage, is a decent sized chunk, so I’m not sure if I’m going to continue including that plan or at the very least, go back to benchmarking both types of Vultr plans.

In a perfect world, everybody would shore up around the same types of plans and have consistent pricing (similar to how DigitalOcean does their flexible plan) and I’d just review each type from each provider to give an even better picture of how stuff is going.

As per usual, I spun up three instances from each provider, all running Ubuntu
18.04 LTS, and averaged the results (when applicable).

Overview

 DigitalOceanLightsailLinodeUpCloudVultr
LocationNew York 1Virginia, Zone ANewark, NJChicago 1New Jersey
RAM16 GB16 GB16 GB16 GB16 GB
CPU6 Cores4 Cores6 Cores6 Cores4 Cores
Storage320 GB SSD320 GB SSD320 GB SSD320 GB SSD384 GB NVMe
Transfer6 TB6 TB8 TB6 TB5 TB
Base Price$80/month$80/month$80/month$80/month$96/month
Backups$16/monthN/A$20/month$0.06/GB$19.20/month
Transfer Overage$0.01/GB$0.09/GB$0.02/GB$0.056/GB$0.01/GB
Load Balancer$10/month$18/month$10/monthN/A$10/month
Block Storage$0.10/GB$0.10/GB$0.10/GB$0.223/GB$0.10/GB
Object StorageYesYesYesNoYes
Managed DatabasesYesYesOn 2020 RoadmapNoNo
2FA/MFAYesYesYesYesYes
One-click AppsYesYesYesNoYes
Custom ImagesYesNoYesYesYes

Usual stuff here, Vultr offering more space while (with Lightsail) skimping a bit on the CPU cores offered up. I thought what was really interesting was that
Linode is offering 2TB more transfer bandwidth than the rest.

While I didn’t include the network in/out, primarily because I have had a heck
of a time tracking it down per provider, Linode’s plans actually get higher network throughput the higher the plan you get. I thought at one point it was
always fixed, so this news to me.

Also worth noting that Linode pools their bandwidth together across all of your
servers, so that extra bandwidth could benefit a lower priced box that doesn’t
come with that much transfer.

CPU Info

 DigitalOceanLightsailLinodeUpCloudVultr
CPU MHz2294.592300.152233.333000.003792.00
Cache Size (KB)25344.0046080.005802.6716384.0016384.00
BogoMips3059.673068.002999.674001.335057.33

Worth noting that both UpCloud and Vultr both received the same exact CPU specs for all instances. I’ve mentioned this in the past, you should always spin up a few machines with a company to ensure you’re getting the best roll of the dice, but seems like that’s as necessary with them.

CPU

 DigitalOceanLightsailLinodeUpCloudVultr
Events per Second998.52916.481097.711050.681282.69
Minimum (ms)0.931.080.910.910.74
Average (ms)1.001.090.950.950.78
Maximum (ms)3.161.204.361.431.19

Memory (Read)

 DigitalOceanLightsailLinodeUpCloudVultr
Ops per Second3894804.61813430.683518111.634347567.175259354.26
Minimum (ms)0.000.000.000.000.00
Average (ms)0.000.000.000.000.00
Maximum (ms)2.850.093.880.140.10

Memory (Write)

 DigitalOceanLightsailLinodeUpCloudVultr
Ops per Second3869172.17822984.343442361.064378398.995219746.97
Minimum (ms)0.000.000.000.000.00
Average (ms)0.000.000.000.000.00
Maximum (ms)1.880.091.480.110.12

File I/O

 DigitalOceanLightsailLinodeUpCloudVultr
Reads per Second1715.262477.372846.954301.048110.61
Writes per Second1143.501651.581897.962867.365407.07
Fsyncs per Second3654.545281.066065.069168.0317298.27
Minimum (ms)0.000.000.000.000.00
Average (ms)0.150.110.100.060.03
Maximum (ms)2790.6727.12220.117.644.08

Quite surprised by DigitalOcean on this one, with such low benchmarks but also an exceptionally long maximum time. Could very well have been due to a bad neighbor, in fact, I may been the bad neighbor as I was running the benchmarks on the servers in parallel.

MySQL

 DigitalOceanLightsailLinodeUpCloudVultr
Transactions per Second1223.332486.672477.673721.005374.67
Queries per Second24466.6749733.3349553.3374420.00107493.33
Minimum (ms)1.752.402.301.721.24
Average (ms)9.264.024.142.681.87
Maximum (ms)2745.1466.9028.8523.9013.82

Redis

 DigitalOceanLightsailLinodeUpCloudVultr
PING_INLINE76292.6899095.7583487.4595671.70111619.14
PING_BULK78816.8799010.1290142.8196294.96110979.59
SET81348.58100273.0885949.0895093.63108039.65
GET81894.4699836.95102674.3193084.57108248.31
INCR81678.3399569.1599755.1098235.96110382.25
LPUSH83654.65101182.25100235.4099676.63108945.36
RPUSH82386.39100271.2299704.1496608.07109811.42
LPOP79387.8499109.26102575.5998402.13109441.17
RPOP78907.6298643.79105633.7797236.66114032.92
SADD80245.7599874.1687334.9592729.32111131.03
HSET79095.09100679.7783346.6694768.78107033.43
SPOP78542.70100844.2884076.3592278.63112674.35
LRANGE_100 (first 100 elements)44099.9458940.5046494.4155289.1466501.24
LRANGE_300 (first 300 elements)17832.5621866.2314992.7822735.5526824.59
LRANGE_500 (first 500 elements)11861.8314458.5410041.1515233.3417842.48
LRANGE_600 (first 600 elements)9087.7711102.347974.8912016.6813795.77
MSET (10 keys)69731.7181527.3582889.2694492.2694914.91

In the past, Vultr would crush every category except this one, with UpCloud coming in hot. That has consistently not been the case since testing instances
with a price point north of the $20 mark. I’d be interested to see if this has all been anecdotal and Vultr is now outperforming at the lower prices as well.

Thinking next month will circle back down to the $5 plans to see if that’s the
case or not.

Speed Test

 DigitalOceanLightsailLinodeUpCloudVultr
Distance (km)2435.002090.302421.441515.671353.06
Latency (ms)44.14040.86443.93540.59642.322
Download (Mbit/s)1173.37123.0686.12155.24149.88
Upload (Mbit/s)440.2067.02330.85103.92406.28

I also mention that this and the ab benchmarks should be taken with a grain of
salt, but it’s hard to acknowledge that this month DigitalOcean crushed the down and up speeds.

Vultr used to tout having the fastest network, but I noticed they’ve shifted their marketing away from saying that (noticed that when trying to dig up their network specs).

Apache Benchmark (against nginx on the servers)

 DigitalOceanLightsailLinodeUpCloudVultr
Requests per Second233.22273.35256.08269.21263.57
Time per Request (ms) (mean)2310.671831.121996.591861.831904.43
Transfer Rate (Kbyte/sec)195.64229.31214.81225.83221.10

Definitely need to take this one with a cup of salt, since it’s extremely subjective and my own ISP factors in quite a bit. Also, I’m pretty sure that Lightsail’s never excelled in this category in previous months. Maybe things have changed though?

Conclusion

Vultr’s High Frequency plans are still looking strong, but it’s hard not to factor in the 20% premium in price which is way more significant on the higher priced plans.

DigitalOcean tends to come in right behind Vultr, but this month felt like Linode’s sneaking up in the rankings. That could very well be seen as Linode making improvements, or DigitalOcean experiencing some growing pains.

Linode’s additional transfer allotment is pretty substantial as well, so if
you’re bandwidth conscious, they’d be a solid choice. Also improved networking as you scale up, which if nothing else, is nice that they formally advertise / document that stuff.

While a consistent poor performer, Lightsail’s addition of new pricing plans
should give a bit of faith that they are in it for the long haul and very well
could improve systems and become a contender in the future.
See the amendment at the top of the post.

I mention it from time to time, but these benchmarks are my own and it’s always good to run your own to help make sure things are meeting your expectations. I’ve made it easy to do so by open sourcing my server benchmarks script.

I’ve seen my script referenced on some other sites, which is great stuff. It
stops being so great when I read that they made some improvements, but never sent a pull request my way, so we can all benefit. So yeah, friendly reminder that pull requests are encouraged 😉

That said, if you found this post helpful in deciding on a new hosting provider,
I would be extremely grateful if you used one of my referral links below. Also
drop me a comment to let me know which provider you went with!


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.