VPS Showdown – March 2025 – DigitalOcean vs. Linode vs. UpCloud vs. Vultr

With spring already upon us (meteorological, not quite astronomical) it was time for me to shake things up a bit with these posts. This month, my curiosity led me including UpCloud yet again. I also opted to drop the averaged metrics in favor of spinning up just a single instance, and reporting on it as such.

This month is a bit all over the place with instance types and prices, but all were 1 GB of RAM each. With UpCloud being on the higher end of the pricing, I may switch over to including DigitalOcean’s Premium AMD offering next time. Since Vultr’s High Frequency plan seemed to do the best when I compared Vultr against itself, I included it.

Linode (Akamai Cloud) is still leading the pack in terms of price. They also blow everybody out of the water by not over complicating their plans with confusing marketing jargon. UpCloud’s pricing is still in Euros. I went ahead and converted that to USD for consistency. Hopefully they’ll start to globalize their pricing at some point.

Like previous posts, all instances are running the latest long-term service release of Ubuntu. As previously mentioned, I only spun up one instance with each provider, no averaging, just raw results.

Overview – DigitalOcean vs. Linode vs. Vultr

Linux DistroUbuntu 24.04 LTS
Kernel Version6.8.0
MySQL Version8.0.41
Redis Version7.0.15
DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
LocationNew York 1Newark, NJUS-NYC1New York (NJ)
Monthly Price$6/month$5/month$7.26/month$6/month
Hourly Price$0.009/hour$0.0075/hour$0.01/hour$0.008/hour
RAM1 GB1 GB1 GB1 GB
CPU1 Core1 Core1 Core1 Core
Storage25 GB25 GB25 GB32 GB
Storage TypeSSDSSDSSDNVMe
Transfer1 TB1 TB1 TB1 TB
Transfer Overage$0.01/GB$0.01/GB$0.01/GB$0.01/GB
Backups$1.2/month$2/month$0/month$1.2/month

CPU Info

Model Name
DigitalOcean – Basic – RegularDO-Regular
Linode – Shared CPU – NanodeAMD EPYC 7601 32-Core Processor
UpCloud – General Purpose – BalancedAMD EPYC 7542 32-Core Processor
Vultr – Shared CPU – High FrequencyIntel Core Processor (Skylake, IBRS)
DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
CPU MHz2,294.612,200.002,894.563,696.00
Cache Size (KB)4,096.00512.00512.0016,384.00
BogoMipsNaN4,399.005,789.007,392.00

CPU

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Events per Second972.141,290.541,639.021,447.41
Minimum (ms)0.970.620.590.62
Average (ms)1.030.770.610.69
Maximum (ms)1.574.412.491.08

Memory

Read

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Ops per Second3,188,746.654,198,139.275,313,870.297,271,237.23
Minimum (ms)0.000.000.000.00
Average (ms)0.000.000.000.00
Maximum (ms)0.262.030.300.28

Write

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Ops per Second3,275,353.884,147,084.565,159,683.457,313,620.71
Minimum (ms)0.000.000.000.00
Average (ms)0.000.000.000.00
Maximum (ms)1.883.651.060.40

File I/O

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Reads per Second881.502,254.552,469.483,663.61
Writes per Second587.601,502.971,646.322,442.41
Fsyncs per Second1,893.114,820.375,278.127,822.30
Minimum (ms)0.000.000.000.00
Average (ms)0.300.120.110.07
Maximum (ms)7.703.9319.324.75

MySQL

Read Only

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Transactions per Second3,681.003,767.005,999.007,399.00
Queries per Second58,896.0060,272.0095,984.00118,384.00
Minimum (ms)1.271.721.260.98
Average (ms)2.712.651.671.35
Maximum (ms)16.9118.6338.098.18

Write Only

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Transactions per Second1,020.002,972.002,915.007,016.00
Queries per Second6,120.0017,832.0017,490.0042,096.00
Minimum (ms)4.651.651.640.61
Average (ms)9.793.363.431.42
Maximum (ms)86.1921.2051.398.02

Read Write

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
Transactions per Second689.001,385.001,616.002,906.00
Queries per Second13,780.0027,700.0032,320.0058,120.00
Minimum (ms)7.944.153.601.99
Average (ms)14.527.226.183.44
Maximum (ms)47.7789.2344.3811.99

Redis

DigitalOcean – Basic – RegularLinode – Shared CPU – NanodeUpCloud – General Purpose – BalancedVultr – Shared CPU – High Frequency
PING_INLINE50,581.6933,344.4542,716.7956,085.25
PING_MBULK51,203.2833,500.8444,189.1358,038.30
SET50,050.0532,690.4241,220.1150,968.40
GET52,910.0531,735.9644,111.1651,921.08
INCR38,729.6732,435.9442,918.4657,012.54
LPUSH36,350.4233,322.2343,744.5356,211.35
RPUSH43,706.2933,355.5742,390.8456,465.27
LPOP50,968.4033,288.9542,247.5756,433.41
RPOP48,614.4932,894.7443,140.6456,593.10
SADD51,975.0533,456.0041,876.0556,785.91
HSET45,126.3529,481.1342,069.8456,850.48
SPOP48,971.5931,625.5542,753.3156,980.06
LRANGE_100 (first 100 elements)18,201.6720,597.3227,770.0619,908.42
LRANGE_300 (first 300 elements)11,691.8010,478.8814,570.8917,702.25
LRANGE_500 (first 500 elements)7,182.887,165.3810,110.2012,344.16
LRANGE_600 (first 600 elements)5,711.356,019.758,828.4611,031.44
MSET (10 keys)40,650.4131,725.8939,936.1055,187.64

Conclusion

It’s not all the time that a single provider really cleans up in every category. At least in terms of raw benchmarks, Vultr’s High Frequency plan performed very well. Also interesting to see the side by side of Linoda and UpCloud seeing as they are offering very similar processors at the moment.

As always, it’s a great idea to spin up your own instances and do your own independent benchmarks. If nothing else, you never know if you’ll end up on new or old hardware, so spinning up multiple instances with the same provider is always encouraged.


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