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

  DigitalOcean Lightsail Linode UpCloud Vultr
Location New York 1 Virginia, Zone A Newark, NJ Chicago 1 New Jersey
RAM 16 GB 16 GB 16 GB 16 GB 16 GB
CPU 6 Cores 4 Cores 6 Cores 6 Cores 4 Cores
Storage 320 GB SSD 320 GB SSD 320 GB SSD 320 GB SSD 384 GB NVMe
Transfer 6 TB 6 TB 8 TB 6 TB 5 TB
Base Price $80/month $80/month $80/month $80/month $96/month
Backups $16/month N/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/month N/A $10/month
Block Storage $0.10/GB $0.10/GB $0.10/GB $0.223/GB $0.10/GB
Object Storage Yes Yes Yes No Yes
Managed Databases Yes Yes On 2020 Roadmap No No
2FA/MFA Yes Yes Yes Yes Yes
One-click Apps Yes Yes Yes No Yes
Custom Images Yes No Yes Yes Yes

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

  DigitalOcean Lightsail Linode UpCloud Vultr
CPU MHz 2294.59 2300.15 2233.33 3000.00 3792.00
Cache Size (KB) 25344.00 46080.00 5802.67 16384.00 16384.00
BogoMips 3059.67 3068.00 2999.67 4001.33 5057.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

  DigitalOcean Lightsail Linode UpCloud Vultr
Events per Second 998.52 916.48 1097.71 1050.68 1282.69
Minimum (ms) 0.93 1.08 0.91 0.91 0.74
Average (ms) 1.00 1.09 0.95 0.95 0.78
Maximum (ms) 3.16 1.20 4.36 1.43 1.19

Memory (Read)

  DigitalOcean Lightsail Linode UpCloud Vultr
Ops per Second 3894804.61 813430.68 3518111.63 4347567.17 5259354.26
Minimum (ms) 0.00 0.00 0.00 0.00 0.00
Average (ms) 0.00 0.00 0.00 0.00 0.00
Maximum (ms) 2.85 0.09 3.88 0.14 0.10

Memory (Write)

  DigitalOcean Lightsail Linode UpCloud Vultr
Ops per Second 3869172.17 822984.34 3442361.06 4378398.99 5219746.97
Minimum (ms) 0.00 0.00 0.00 0.00 0.00
Average (ms) 0.00 0.00 0.00 0.00 0.00
Maximum (ms) 1.88 0.09 1.48 0.11 0.12

File I/O

  DigitalOcean Lightsail Linode UpCloud Vultr
Reads per Second 1715.26 2477.37 2846.95 4301.04 8110.61
Writes per Second 1143.50 1651.58 1897.96 2867.36 5407.07
Fsyncs per Second 3654.54 5281.06 6065.06 9168.03 17298.27
Minimum (ms) 0.00 0.00 0.00 0.00 0.00
Average (ms) 0.15 0.11 0.10 0.06 0.03
Maximum (ms) 2790.67 27.12 220.11 7.64 4.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

  DigitalOcean Lightsail Linode UpCloud Vultr
Transactions per Second 1223.33 2486.67 2477.67 3721.00 5374.67
Queries per Second 24466.67 49733.33 49553.33 74420.00 107493.33
Minimum (ms) 1.75 2.40 2.30 1.72 1.24
Average (ms) 9.26 4.02 4.14 2.68 1.87
Maximum (ms) 2745.14 66.90 28.85 23.90 13.82

Redis

  DigitalOcean Lightsail Linode UpCloud Vultr
PING_INLINE 76292.68 99095.75 83487.45 95671.70 111619.14
PING_BULK 78816.87 99010.12 90142.81 96294.96 110979.59
SET 81348.58 100273.08 85949.08 95093.63 108039.65
GET 81894.46 99836.95 102674.31 93084.57 108248.31
INCR 81678.33 99569.15 99755.10 98235.96 110382.25
LPUSH 83654.65 101182.25 100235.40 99676.63 108945.36
RPUSH 82386.39 100271.22 99704.14 96608.07 109811.42
LPOP 79387.84 99109.26 102575.59 98402.13 109441.17
RPOP 78907.62 98643.79 105633.77 97236.66 114032.92
SADD 80245.75 99874.16 87334.95 92729.32 111131.03
HSET 79095.09 100679.77 83346.66 94768.78 107033.43
SPOP 78542.70 100844.28 84076.35 92278.63 112674.35
LRANGE_100 (first 100 elements) 44099.94 58940.50 46494.41 55289.14 66501.24
LRANGE_300 (first 300 elements) 17832.56 21866.23 14992.78 22735.55 26824.59
LRANGE_500 (first 500 elements) 11861.83 14458.54 10041.15 15233.34 17842.48
LRANGE_600 (first 600 elements) 9087.77 11102.34 7974.89 12016.68 13795.77
MSET (10 keys) 69731.71 81527.35 82889.26 94492.26 94914.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

  DigitalOcean Lightsail Linode UpCloud Vultr
Distance (km) 2435.00 2090.30 2421.44 1515.67 1353.06
Latency (ms) 44.140 40.864 43.935 40.596 42.322
Download (Mbit/s) 1173.37 123.06 86.12 155.24 149.88
Upload (Mbit/s) 440.20 67.02 330.85 103.92 406.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)

  DigitalOcean Lightsail Linode UpCloud Vultr
Requests per Second 233.22 273.35 256.08 269.21 263.57
Time per Request (ms) (mean) 2310.67 1831.12 1996.59 1861.83 1904.43
Transfer Rate (Kbyte/sec) 195.64 229.31 214.81 225.83 221.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!

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.