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

Josh Sherman
14 min read
VPS Showdown
HEADS-UP: A ton has changed since this post was originally published!
Why not check out the latest comparison?

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).


  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.


  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.


  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


  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?


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!

Or if you’re feeling really generous, show off your favorite tech stack by picking up a shirt!

Join the Conversation

Good stuff? Want more?

Weekly emails about technology, development, and sometimes sauerkraut.

100% Fresh, Grade A Content, Never Spam.

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.

Currently Reading

Parasie Eve

Previous Reads

Buy Me a Coffee Become a Sponsor

Related Articles