This post is old news – Get fresh benchmarks at VPS Showdown (daily updates!)

in VPS Showdown

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

Version
Linux Distro Ubuntu 24.04 LTS
Kernel Version 6.8.0
MySQL Version 8.0.41
Redis Version 7.0.15
DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Location New York 1 Newark, NJ US-NYC1 New 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
RAM 1 GB 1 GB 1 GB 1 GB
CPU 1 Core 1 Core 1 Core 1 Core
Storage 25 GB 25 GB 25 GB 32 GB
Storage Type SSD SSD SSD NVMe
Transfer 1 TB 1 TB 1 TB 1 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 - Regular DO-Regular
Linode - Shared CPU - Nanode AMD EPYC 7601 32-Core Processor
UpCloud - General Purpose - Balanced AMD EPYC 7542 32-Core Processor
Vultr - Shared CPU - High Frequency Intel Core Processor (Skylake, IBRS)
DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
CPU MHz 2,294.61 2,200.00 2,894.56 3,696.00
Cache Size (KB) 4,096.00 512.00 512.00 16,384.00
BogoMips NaN 4,399.00 5,789.00 7,392.00

CPU

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Events per Second 972.14 1,290.54 1,639.02 1,447.41
Minimum (ms) 0.97 0.62 0.59 0.62
Average (ms) 1.03 0.77 0.61 0.69
Maximum (ms) 1.57 4.41 2.49 1.08

Memory

Read

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Ops per Second 3,188,746.65 4,198,139.27 5,313,870.29 7,271,237.23
Minimum (ms) 0.00 0.00 0.00 0.00
Average (ms) 0.00 0.00 0.00 0.00
Maximum (ms) 0.26 2.03 0.30 0.28

Write

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Ops per Second 3,275,353.88 4,147,084.56 5,159,683.45 7,313,620.71
Minimum (ms) 0.00 0.00 0.00 0.00
Average (ms) 0.00 0.00 0.00 0.00
Maximum (ms) 1.88 3.65 1.06 0.40

File I/O

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Reads per Second 881.50 2,254.55 2,469.48 3,663.61
Writes per Second 587.60 1,502.97 1,646.32 2,442.41
Fsyncs per Second 1,893.11 4,820.37 5,278.12 7,822.30
Minimum (ms) 0.00 0.00 0.00 0.00
Average (ms) 0.30 0.12 0.11 0.07
Maximum (ms) 7.70 3.93 19.32 4.75

MySQL

Read Only

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Transactions per Second 3,681.00 3,767.00 5,999.00 7,399.00
Queries per Second 58,896.00 60,272.00 95,984.00 118,384.00
Minimum (ms) 1.27 1.72 1.26 0.98
Average (ms) 2.71 2.65 1.67 1.35
Maximum (ms) 16.91 18.63 38.09 8.18

Write Only

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Transactions per Second 1,020.00 2,972.00 2,915.00 7,016.00
Queries per Second 6,120.00 17,832.00 17,490.00 42,096.00
Minimum (ms) 4.65 1.65 1.64 0.61
Average (ms) 9.79 3.36 3.43 1.42
Maximum (ms) 86.19 21.20 51.39 8.02

Read Write

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
Transactions per Second 689.00 1,385.00 1,616.00 2,906.00
Queries per Second 13,780.00 27,700.00 32,320.00 58,120.00
Minimum (ms) 7.94 4.15 3.60 1.99
Average (ms) 14.52 7.22 6.18 3.44
Maximum (ms) 47.77 89.23 44.38 11.99

Redis

DigitalOcean - Basic - Regular Linode - Shared CPU - Nanode UpCloud - General Purpose - Balanced Vultr - Shared CPU - High Frequency
PING_INLINE 50,581.69 33,344.45 42,716.79 56,085.25
PING_MBULK 51,203.28 33,500.84 44,189.13 58,038.30
SET 50,050.05 32,690.42 41,220.11 50,968.40
GET 52,910.05 31,735.96 44,111.16 51,921.08
INCR 38,729.67 32,435.94 42,918.46 57,012.54
LPUSH 36,350.42 33,322.23 43,744.53 56,211.35
RPUSH 43,706.29 33,355.57 42,390.84 56,465.27
LPOP 50,968.40 33,288.95 42,247.57 56,433.41
RPOP 48,614.49 32,894.74 43,140.64 56,593.10
SADD 51,975.05 33,456.00 41,876.05 56,785.91
HSET 45,126.35 29,481.13 42,069.84 56,850.48
SPOP 48,971.59 31,625.55 42,753.31 56,980.06
LRANGE_100 (first 100 elements) 18,201.67 20,597.32 27,770.06 19,908.42
LRANGE_300 (first 300 elements) 11,691.80 10,478.88 14,570.89 17,702.25
LRANGE_500 (first 500 elements) 7,182.88 7,165.38 10,110.20 12,344.16
LRANGE_600 (first 600 elements) 5,711.35 6,019.75 8,828.46 11,031.44
MSET (10 keys) 40,650.41 31,725.89 39,936.10 55,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: