Time for the spooky season edition of the VPS Showdown. The last few months have been a lot of the same, so I decided to take another crack at trying to do an apples to apples comparison, focusing on price.
Even though DigitalOcean lacks a $5 plan, as the plans increase, they eventually offer a plan that’s the same price as comparable offerings from Linode and Vultr. Turns out that Vultr actually has multiple plans that fit into the price point, so I had to make a judgement call on which one to pick.
Honestly starting to think that Vultr may deserve a dedicated post comparing the different plans that they have at the same price point.
So this month, I went with 4 GB instances, that are $24 per month. A bit pricier, but this tends to be the size that I pick for most things I have in production in a VPS. I usually will run things on a dedicated CPU when available, but for this month, it’s all shared computing.
DigitalOcean and Linode are both on their standard shared offerings. For Vultr, I ended up going with the Premium AMD option. They also had Premium Intel and High Velocity (which had significantly more storage) plans. I could have went with a lesser option, but the price would have been less, and I didn’t want that.
As per usual, I went ahead and spun up three instances with each provider, all running Ubuntu 24.04 LTS and living in the New York / Newark area. Where applicable, I’ve averaged the results.
Overview – DigitalOcean vs. Linode vs. Vultr
Linux Distro
Ubuntu 24.04 LTS
Kernel Version
6.8.0
MySQL Version
8.0.39
Redis Version
7.0.15
DigitalOcean
Linode
Vultr
Location
New York 1
Newark, NJ
New York (NJ)
Monthly Price
$24/month
$24/month
$24/month
Hourly Price
$0.036/hour
$0.036/hour
$0.033/hour
RAM
4 GB
4 GB
4 GB
CPU
2 Cores
2 Cores
2 Cores
Storage
80 GB
80 GB
100 GB
Storage Type
SSD
SSD
NVMe
Transfer
4 TB
4 TB
5 TB
Transfer Overage
$0.01/GB
$0.01/GB
$0.01/GB
Backups
Starting at $4.80/month
$5/month
$4.80/month
CPU Info
Model Name
DigitalOcean – All Instances
DO-Regular
Linode – Instance #1
AMD EPYC 7601 32-Core Processor
Linode – Instance #2
AMD EPYC 7642 48-Core Processor
Linode – Instance #3
AMD EPYC 7542 32-Core Processor
Vultr – All Instances
AMD EPYC-Rome Processor
DigitalOcean
Linode
Vultr
CPU MHz
2,294.61
2,466.66
1,996.25
Cache Size (KB)
4,096.00
512.00
512.00
BogoMips
NaN
3,400.00
2,661.67
CPU
DigitalOcean
Linode
Vultr
Events per Second
800.29
1,472.68
3,328.02
Minimum (ms)
0.98
0.64
0.28
Average (ms)
1.25
0.69
0.30
Maximum (ms)
7.70
4.41
8.71
Memory
Read
DigitalOcean
Linode
Vultr
Ops per Second
3,235,935.41
4,775,000.04
5,051,266.61
Minimum (ms)
0.00
0.00
0.00
Average (ms)
0.00
0.00
0.00
Maximum (ms)
1.26
3.53
2.92
Write
DigitalOcean
Linode
Vultr
Ops per Second
3,019,862.82
4,695,861.71
5,004,443.75
Minimum (ms)
0.00
0.00
0.00
Average (ms)
0.00
0.00
0.00
Maximum (ms)
1.57
4.67
2.37
File I/O
DigitalOcean
Linode
Vultr
Reads per Second
831.13
4,743.62
2,995.44
Writes per Second
554.07
3,162.41
1,996.96
Fsyncs per Second
1,777.02
10,127.38
6,396.65
Minimum (ms)
0.00
0.00
0.00
Average (ms)
0.32
0.06
0.09
Maximum (ms)
62.26
21.19
34.44
MySQL
Read Only
DigitalOcean
Linode
Vultr
Transactions per Second
3,017.67
5,420.67
5,032.00
Queries per Second
48,282.67
86,730.67
80,512.00
Minimum (ms)
1.66
1.51
1.49
Average (ms)
3.50
1.98
2.03
Maximum (ms)
22.68
6.34
14.80
Write Only
DigitalOcean
Linode
Vultr
Transactions per Second
488.00
5,015.67
3,489.00
Queries per Second
2,928.00
30,094.00
20,934.00
Minimum (ms)
8.00
1.12
1.31
Average (ms)
21.28
2.10
3.16
Maximum (ms)
283.92
27.37
92.00
Read Write
DigitalOcean
Linode
Vultr
Transactions per Second
548.67
2,488.00
1,835.67
Queries per Second
10,973.33
49,760.00
36,713.33
Minimum (ms)
8.91
2.90
3.08
Average (ms)
20.33
4.25
5.86
Maximum (ms)
111.92
16.64
71.96
Redis
DigitalOcean
Linode
Vultr
PING_INLINE
42,969.42
55,466.76
50,586.94
PING_MBULK
48,197.47
54,221.34
50,433.65
SET
51,347.75
55,836.52
49,359.50
GET
51,622.23
56,731.93
50,647.70
INCR
52,018.66
54,653.47
50,124.57
LPUSH
51,566.23
54,196.44
48,809.00
RPUSH
51,804.00
57,714.46
49,045.15
LPOP
52,300.89
57,295.52
51,371.91
RPOP
54,025.06
56,388.18
50,525.94
SADD
48,948.34
56,664.62
50,749.76
HSET
46,012.93
56,203.15
50,779.56
SPOP
51,673.22
57,871.55
52,257.89
LRANGE_100 (first 100 elements)
26,198.40
42,881.93
40,662.65
LRANGE_300 (first 300 elements)
12,235.53
22,875.56
23,733.62
LRANGE_500 (first 500 elements)
7,115.77
16,397.17
17,183.65
LRANGE_600 (first 600 elements)
6,917.01
14,705.01
15,285.05
MSET (10 keys)
47,102.01
60,489.79
55,524.29
Conclusion
I was expecting that Vultr would clean up this month, with the advantage of a premium AMD processor. I kinda forgot that Linode offers AMD processors with all of their plans, so Vultr lost their edge a bit.
Overall Linode and Vultr’s performance was quite comparable. DigitalOcean paled in comparison, but raw performance metrics don’t tell the entire tale. Especially since DigitalOcean offers a ton more in terms of managed services, and their App Platform.
If you have found these posts informative and helpful in searching for a new hosting provider, please consider using one of the links below when signing up:
DigitalOcean, new accounts receive $200 in credit (good for 60 days)
Linode, new accounts receive $100 in credit (also good for 60 days)
Vultr, new accounts also receive $100 in credit (good for only 14 days)
UpCloud, new accounts receive €25 in credit (yes, that’s in Euros)