VPS Showdown – January 2022 – DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr

So 2021 was interesting. Not going to bore you with the details of my life, but
I am ready to bore you with the details of the world of virtual private servers!

I forgot to do my “Christmas wish list” last month as I have in the past, but
it’s never too late, I say!

So in doing these posts, I spin up each server manually instead of using
Terraform or some other infrastructure as code system. The reason for this is
because, even though I don’t report on it directly, I like to see what’s going
on with each provider’s web interface. Linode’s grown up a ton and if I was
scripting everything, I would have missed out on these updates.

That being said, my biggest gripe that I really wish would be implemented in the
next year would be the ability to spin up multiple instances at once on both
Linode and UpCloud. DigitalOcean, Vultr and even Lightsail offer the ability to
enter a quantity and you’re off to the races.

Worth nothing that this isn’t a feature that I need in my day to day server
administration duties, but something that would save me a bit of time every
month while doing those posts.

My own selfish desires aside, it’s been really great to see the different
providers grow over the last few years of monthly posts. Sounds like managed
databases are still on their way from Linode, which would leave Vultr as the
only provider without them.

If I had to attempt to predict the future, now that managed databases are
becoming a standard offering, I suspect container hosting will be the next big
feature we’ll see become more standard.

And if I had to go full Nostradamus, I’d say that at some point we’re going to
start seeing message queues (like AWS SQS) starting to show up at some point.
Message queues are extremely important for most major applications, especially
as they scale up and one of those things that AWS does really well, but nobody
else seems to be addressing.

Enough putting the pressure on the providers, there’s also a few things on my
wishlist (more like TODO list) that I’d like to get implemented this year.

First and foremost, with doing these posts monthly, I’d really like to start
showing some month-over-month and year-over-year data comparisons. The whole
point of doing these monthly is to see how things are going, and without any
sort of context it’s hard to say if things are getting better or worse.

The other thing I really want to get into the mix are some additional tests.
Getting MongoDB and PostgreSQL into the mix would be great and at some point,
maybe even starting to compare the managed database offerings from each
provider.

On top of databases, I’m curious to try my hand at getting something like
Node.js and PHP benchmarks in there. I know there’s other languages out there,
but those are the 2 I do 99% of my coding with.

Trying to figure out some way to test a real world application and/or WordPress
install would be pretty cool too.

But that’s all for a later date, this month is a bit more of the same. As per
the usual, I’ve spun up 3 server instances with each provider at the $5 price
point as well as at the “premium” $6 per month price point as well.

Each server is in or around the New York / New Jersey area and is running Ubuntu
20.04 LTS. Stats are then averaged where applicable.

Speaking of Ubuntu, as we’re back in an even numbered year, there will be a new
LTS release of Ubuntu for our testing pleasure. That will drop in April, but it
tends to take AWS a bit of time before they offer it up. In the past I’ve simply
omitted Lightsail for a while, but I think this year I’ll keep it in the mix,
but running the older LTS version of Ubuntu.

$5 VPS Showdown – DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr”

Overview

  DigitalOcean Lightsail Linode UpCloud Vultr
Location New York 1 Virginia, Zone A Newark, NJ US-NYC1 New York (NJ)
Distro Ubuntu 20.04 LTS Ubuntu 20.04 LTS Ubuntu 20.04 LTS Ubuntu 20.04 LTS Ubuntu 20.04 LTS
Kernel 5.4.0 5.4.0 5.4.0 5.4.0 5.4.0
MySQL 8.0.27 8.0.27 8.0.27 8.0.27 8.0.27
Redis 5.0.7 5.0.7 5.0.7 5.0.7 5.0.7
Base Price $5/month $5/month $5/month $5/month $5/month
Hourly Price $0.007/hour $0.007/hour $0.0075/hour $0.007/hour $0.007/hour
RAM 1 GB 1 GB 1 GB 1 GB 1 GB
CPU 1 Core 1 Core 1 Core 1 Core 1 Core
Storage 25 GB 40 GB 25 GB 25 GB 25 GB
Storage Type SSD SSD SSD SSD SSD
Transfer 1 TB 2 TB 1 TB 1 TB 1 TB
Transfer Overage $0.01/GB $0.09/GB $0.01/GB $0.01/GB $0.01/GB
Backups $1/month $2/month $2/month $1/month $1/month
DNS Yes Yes Yes No Yes
Firewall Yes Yes Yes Yes Yes
Load Balancer $10/month $18/month $10/month No $10/month
Block Storage $0.1/GB $0.1/GB $0.1/GB $0.223/GB $0.1/GB
Object Storage $5/month $0.023/GB $5/month $5/month $5/month
Managed Databases MongoDB, MySQL, PostgreSQL, Redis MySQL, PostgreSQL Coming soon! MySQL, PostgreSQL No
2FA/MFA Yes Yes Yes Yes Yes
One-click Apps Yes Yes Yes No Yes
Custom Images Yes No Yes Yes Yes
Kubernetes Yes Yes Yes No Yes
Container Registry Yes Yes No No No
Container Hosting Yes Yes No No No

CPU Info

  Model Name
DigitalOcean – All Instances DO-Regular
Lightsail – All Instances Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
Linode – Instance #1 AMD EPYC 7501 32-Core Processor
Linode – Instance #2 AMD EPYC 7601 32-Core Processor
Linode – Instance #3 AMD EPYC 7542 32-Core Processor
UpCloud – All Instances AMD EPYC 7542 32-Core Processor
Vultr – All Instances Intel Core Processor (Haswell, no TSX, IBRS)
  DigitalOcean Lightsail Linode UpCloud Vultr
CPU MHz 2,195.53 2,399.91 2,366.66 2,894.56 2,400.00
Cache Size (KB) 4,096.00 30,720.00 512.00 512.00 16,384.00
BogoMips 2,728.33 3,200.33 3,266.33 3,859.67 3,199.67

CPU

  DigitalOcean Lightsail Linode UpCloud Vultr
Events per Second 768.50 760.69 1,313.53 1,621.81 767.38
Minimum (ms) 1.21 1.25 0.62 0.59 1.17
Average (ms) 1.35 1.31 0.77 0.62 1.30
Maximum (ms) 5.73 5.36 11.37 2.41 5.79


Memory

Read

  DigitalOcean Lightsail Linode UpCloud Vultr
Ops per Second 3,734,465.91 524,874.22 4,170,829.76 5,395,204.62 3,597,467.35
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.14 1.71 4.17 0.26 5.58


Write

  DigitalOcean Lightsail Linode UpCloud Vultr
Ops per Second 3,676,548.77 521,000.10 4,067,785.41 5,405,717.22 3,667,204.28
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.49 2.75 4.83 0.23 3.28


File I/O

  DigitalOcean Lightsail Linode UpCloud Vultr
Reads per Second 1,651.69 916.70 2,163.49 2,551.48 2,004.72
Writes per Second 1,101.11 611.13 1,442.32 1,700.97 1,336.50
Fsyncs per Second 3,531.96 1,961.12 4,620.14 5,449.84 4,281.38
Minimum (ms) 0.00 0.00 0.00 0.00 0.00
Average (ms) 0.18 0.29 0.13 0.10 0.13
Maximum (ms) 11.41 37.07 28.72 6.09 6.16


MySQL

Read Only

  DigitalOcean Lightsail Linode UpCloud Vultr
Transactions per Second 4,027.00 4,910.00 5,612.67 8,325.00 4,969.00
Queries per Second 64,432.00 78,560.00 89,802.67 133,200.00 79,504.00
Minimum (ms) 1.67 1.72 1.27 0.95 1.51
Average (ms) 2.62 2.03 1.84 1.20 2.01
Maximum (ms) 15.14 33.78 16.22 6.30 20.99


Write Only

  DigitalOcean Lightsail Linode UpCloud Vultr
Transactions per Second 2,594.67 1,675.33 4,055.00 4,198.33 3,277.33
Queries per Second 15,568.00 10,052.00 24,330.00 25,190.00 19,664.00
Minimum (ms) 1.77 3.17 1.16 1.37 1.54
Average (ms) 4.45 5.99 3.38 2.38 3.05
Maximum (ms) 34.46 25.52 48.69 14.16 20.08


Read Write

  DigitalOcean Lightsail Linode UpCloud Vultr
Transactions per Second 1,343.67 1,090.33 2,230.33 2,535.67 1,671.33
Queries per Second 26,873.33 21,806.67 44,606.67 50,713.33 33,426.67
Minimum (ms) 4.47 5.51 2.71 2.58 3.64
Average (ms) 8.66 9.18 4.69 3.94 5.98
Maximum (ms) 37.06 113.01 34.12 15.48 25.63


Redis

  DigitalOcean Lightsail Linode UpCloud Vultr
PING_INLINE 32,269.90 45,936.33 63,185.95 63,946.56 25,434.83
PING_BULK 35,453.66 45,469.22 57,432.57 61,944.78 23,807.46
SET 37,460.91 45,502.19 59,899.40 65,817.06 25,525.81
GET 36,743.77 45,461.89 58,894.37 63,445.63 24,495.00
INCR 38,462.87 45,753.32 63,544.82 64,900.23 24,931.71
LPUSH 38,059.82 46,090.55 60,875.75 68,900.56 26,438.02
RPUSH 33,151.69 45,664.92 60,641.06 68,714.39 26,293.88
LPOP 33,477.01 46,241.56 60,321.43 69,222.05 26,337.69
RPOP 37,046.38 45,866.05 64,197.70 68,118.19 26,170.80
SADD 38,475.57 45,669.46 67,488.31 64,600.37 25,520.66
HSET 39,823.60 46,068.82 60,660.78 69,810.23 26,691.87
SPOP 37,097.88 45,354.61 59,309.45 63,504.05 24,167.97
LRANGE_100 (first 100 elements) 24,392.32 29,135.15 24,858.08 31,210.14 18,642.85
LRANGE_300 (first 300 elements) 9,078.83 13,072.72 8,400.49 11,532.27 8,692.77
LRANGE_500 (first 500 elements) 7,249.78 9,139.26 6,279.04 9,093.99 6,724.28
LRANGE_600 (first 600 elements) 5,516.53 7,543.44 5,312.46 7,449.98 5,759.54
MSET (10 keys) 31,786.36 37,252.71 28,671.35 67,398.11 32,199.18

$6 VPS Showdown – DigitalOcean – Premium Intel vs. DigitalOcean – Premium AMD vs. Vultr – High Frequency”

Overview

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Location New York 1 New York 1 New York (NJ)
Distro Ubuntu 20.04 LTS Ubuntu 20.04 LTS Ubuntu 20.04 LTS
Kernel 5.4.0 5.4.0 5.4.0
MySQL 8.0.27 8.0.27 8.0.27
Redis 5.0.7 5.0.7 5.0.7
Base Price $6/month $6/month $6/month
Hourly Price $0.009/hour $0.009/hour $0.009/hour
RAM 1 GB 1 GB 1 GB
CPU 1 Core 1 Core 1 Core
Storage 25 GB 25 GB 25 GB
Storage Type NVMe NVMe NVMe
Transfer 1 TB 1 TB 1 TB
Transfer Overage $0.01/GB $0.01/GB $0.01/GB
Backups $1.2/month $1.2/month $1.2/month
DNS Yes Yes Yes
Firewall Yes Yes Yes
Load Balancer $10/month $10/month $10/month
Block Storage $0.1/GB $0.1/GB $0.1/GB
Object Storage $5/month $5/month $5/month
Managed Databases MongoDB, MySQL, PostgreSQL, Redis MongoDB, MySQL, PostgreSQL, Redis No
2FA/MFA Yes Yes Yes
One-click Apps Yes Yes Yes
Custom Images Yes Yes Yes
Kubernetes Yes Yes Yes
Container Registry Yes Yes No
Container Hosting Yes Yes No

CPU Info

  Model Name
DigitalOcean – Premium Intel – All Instances DO-Premium-Intel
DigitalOcean – Premium AMD – All Instances DO-Premium-AMD
Vultr – High Frequency – All Instances Intel Core Processor (Skylake, IBRS)
  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
CPU MHz 2,494.13 1,997.49 3,696.00
Cache Size (KB) 4,096.00 512.00 16,384.00
BogoMips 3,325.67 2,661.67 4,928.00

CPU

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Events per Second 978.55 1,222.03 1,366.86
Minimum (ms) 0.95 0.66 0.70
Average (ms) 1.02 0.82 0.74
Maximum (ms) 2.53 5.07 2.45


Memory

Read

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Ops per Second 4,593,379.14 3,882,034.35 6,564,430.90
Minimum (ms) 0.00 0.00 0.00
Average (ms) 0.00 0.00 0.00
Maximum (ms) 0.73 3.06 0.22


Write

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Ops per Second 4,530,738.77 3,765,496.13 6,540,358.32
Minimum (ms) 0.00 0.00 0.00
Average (ms) 0.00 0.00 0.00
Maximum (ms) 0.29 1.04 0.26


File I/O

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Reads per Second 2,127.53 1,651.44 4,695.29
Writes per Second 1,418.35 1,100.98 3,130.17
Fsyncs per Second 4,544.36 3,527.73 10,022.95
Minimum (ms) 0.00 0.00 0.00
Average (ms) 0.12 0.16 0.05
Maximum (ms) 9.07 10.89 6.37


MySQL

Read Only

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Transactions per Second 6,397.00 4,637.00 9,010.33
Queries per Second 102,352.00 74,192.00 144,165.33
Minimum (ms) 1.16 1.45 0.92
Average (ms) 1.58 2.16 1.12
Maximum (ms) 10.49 14.90 10.67


Write Only

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Transactions per Second 4,611.67 3,382.67 9,375.67
Queries per Second 27,670.00 20,296.00 56,254.00
Minimum (ms) 0.87 1.05 0.58
Average (ms) 2.20 3.00 1.08
Maximum (ms) 16.48 24.02 8.07


Read Write

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
Transactions per Second 2,233.67 1,242.33 3,777.33
Queries per Second 44,673.33 24,846.67 75,546.67
Minimum (ms) 2.48 3.57 1.73
Average (ms) 4.49 8.49 2.68
Maximum (ms) 21.29 42.06 15.47


Redis

  DigitalOcean – Premium Intel DigitalOcean – Premium AMD Vultr – High Frequency
PING_INLINE 79,680.14 48,505.93 59,402.12
PING_BULK 74,592.85 40,247.72 56,809.44
SET 67,580.13 47,271.31 59,043.02
GET 72,652.88 58,064.10 59,583.95
INCR 76,667.56 62,174.58 59,001.97
LPUSH 83,826.04 56,663.59 60,554.39
RPUSH 84,235.04 60,285.23 59,296.28
LPOP 83,159.75 59,006.58 57,697.09
RPOP 82,782.93 62,842.44 59,068.40
SADD 81,587.79 64,420.83 55,606.75
HSET 83,285.31 53,114.75 60,769.16
SPOP 77,239.11 51,717.78 57,396.77
LRANGE_100 (first 100 elements) 39,731.66 24,029.04 42,386.13
LRANGE_300 (first 300 elements) 14,035.87 11,210.92 16,868.35
LRANGE_500 (first 500 elements) 10,370.49 6,261.47 11,749.13
LRANGE_600 (first 600 elements) 8,501.29 5,687.42 9,904.29
MSET (10 keys) 45,130.74 24,234.24 52,877.36

Conclusion

Fairly consistent results as we’ve seen recently. Would like to point out that I
think it’s great that Linode, UpCloud and even Lightsail are still advertising
the processors they are running on. Knowing that you “get what you get” when you
spin up a machine, it’s nice to have that level of transparency.

As always, these are just some raw benchmarks, you need to consider your own
application’s needs when choosing your hosting provider. If this post did happen
to help you in your search, be amazing and use one of my referral links below!

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.