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

Bringing things back around to the price point that I had started with many
moons ago, the $20 plan.

While the lower priced systems are sufficient enough for a lot of use cases,
moving up to a meatier server instance can provide instant performance gains,
give you better priority on a shared server and overall, just give you some
breathing room as you scale.

This month saw the inclusion of Ubuntu 20.04 LTS on Amazon Lightsail, so this
month’s comparison features the latest Ubuntu LTS across all providers.

As per the usual, I’ve spun up three server instances with each provider
featured, ran my benchmarks and averaged the results. All instances were at the
twenty dollar price point with the exception of Vultr’s High Frequency plan
which lands at just four bucks more, and historically, performs extremely well.

Overview

  DigitalOcean Lightsail Linode UpCloud Vultr
Location New York 1 Virginia, Zone A Newark, NJ US-NYC1 New York (NJ)
RAM 4 GB 4 GB 4 GB 4 GB 4 GB
CPU 2 Cores 2 Cores 2 Cores 2 Cores 2 Cores
Storage 80 GB SSD 80 GB SSD 80 GB SSD 80 GB SSD 128 GB NVMe SSD
Transfer 4 TB 4 TB 4 TB 4 TB 3 TB
Base Price $20/month $20/month $20/month $20/month $24/month
Backups $4/month N/A $5/month $4/month $4.80/month
Transfer Overage $0.01/GB $0.09/GB $0.01/GB $0.01/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

CPU Info

  DigitalOcean Lightsail Linode UpCloud Vultr
CPU MHz 2294.61 2333.48 2366.66 2894.56 3792.00
Cache Size (KB) 4096.00 40960.00 512.00 512.00 16384.00
BogoMips 3059.67 3134.00 3266.33 3860.00 5056.67

CPU

  DigitalOcean Lightsail Linode UpCloud Vultr
Events per Second 885.77 832.79 1419.70 1655.98 1194.06
Minimum (ms) 0.99 1.19 0.70 0.58 0.80
Average (ms) 1.15 1.20 0.71 0.60 0.84
Maximum (ms) 4.63 2.35 3.25 1.99 1.17

Memory (Read)

  DigitalOcean Lightsail Linode UpCloud Vultr
Ops per Second 4153626.98 524217.89 4460053.85 5351711.43 5605890.53
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) 0.44 0.07 1.15 0.35 0.23

Memory (Write)

  DigitalOcean Lightsail Linode UpCloud Vultr
Ops per Second 4158080.60 523428.57 4484378.28 5490339.70 5642008.12
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) 0.45 0.52 1.30 0.30 0.41

File I/O

  DigitalOcean Lightsail Linode UpCloud Vultr
Reads per Second 3477.28 2015.90 5539.98 4325.24 8109.10
Writes per Second 2318.19 1343.93 3693.32 2883.49 5406.06
Fsyncs per Second 7420.73 4306.64 11826.63 9234.62 17308.66
Minimum (ms) 0.00 0.00 0.00 0.00 0.00
Average (ms) 0.09 0.13 0.05 0.06 0.03
Maximum (ms) 261.22 46.35 55.33 8.40 5.63

MySQL

  DigitalOcean Lightsail Linode UpCloud Vultr
Transactions per Second 1528.67 1271.00 2808.33 2591.67 3648.33
Queries per Second 30573.33 25420.00 56166.67 51833.33 72966.67
Minimum (ms) 3.46 4.78 2.52 2.39 1.84
Average (ms) 7.73 7.89 3.86 3.86 2.77
Maximum (ms) 470.58 79.35 22.22 15.98 10.68

Redis

  DigitalOcean Lightsail Linode UpCloud Vultr
PING_INLINE 75848.82 82734.41 101881.82 111870.92 107169.49
PING_BULK 77584.38 82159.06 77060.94 116194.15 104968.17
SET 79359.08 82290.53 95773.74 110175.60 110974.19
GET 80797.11 81891.62 102992.17 113684.81 106559.26
INCR 85215.46 82207.50 90070.52 121896.42 110088.80
LPUSH 83904.20 82369.52 94331.72 121543.27 107899.92
RPUSH 73723.86 82865.68 102096.96 118348.37 108012.30
LPOP 71525.06 83229.07 95996.28 119714.02 110559.75
RPOP 79838.26 82283.56 104608.00 115689.26 110730.55
SADD 79122.90 82174.34 74390.93 102896.37 109110.69
HSET 78454.37 82527.44 104566.54 95832.30 112657.97
SPOP 80077.52 82228.30 95563.07 95964.10 108263.28
LRANGE_100 (first 100 elements) 48504.20 57026.80 53334.38 65267.59 72134.48
LRANGE_300 (first 300 elements) 22012.04 27240.80 20939.13 32962.14 34141.08
LRANGE_500 (first 500 elements) 15968.53 18591.22 14279.08 23837.04 23979.69
LRANGE_600 (first 600 elements) 13019.83 15337.47 11701.03 19413.70 19398.44
MSET (10 keys) 67419.19 74411.37 65318.64 89863.71 107013.35

Apache Benchmark (against nginx on the servers)

  DigitalOcean Lightsail Linode UpCloud Vultr
Requests per Second 184.41 230.75 213.62 207.38 183.18
Time per Request (ms) (mean) 2853.78 2180.71 2404.97 2510.66 2912.78
Transfer Rate (Kbyte/sec) 154.70 193.57 179.21 173.96 153.66

Conclusion

While Vultr’s High Frequency plan offers a ton more storage, they actually fall
a bit behind in terms of bandwidth / transfer allotment.

While typically Vultr’s offering takes nearly all categories, UpCloud really
shined this month with the number of CPU events per second their instances could
handle.

The big shocked, and yes, this particular metric should still be taken with a
grain of salt, Amazon Lightsail actually performed quite well on the Apache
Benchmarks.

I’ve mentioned before that it seems like DigitalOcean is seemingly falling
behind, or everybody else’s improvements are really starting to show through.
That’s not too different this month with the higher priced instances.

Even though the base metrics aren’t as great as they used to be, the
DigitalOcean offering is still one of the more feature rich with managed
databases and everything else.

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.