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

Josh Sherman
10 min read
VPS Showdown

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.

Join the Conversation

Good stuff? Want more?

Weekly emails about technology, development, and sometimes sauerkraut.

100% Fresh, Grade A Content, Never Spam.

Related Articles