VPS Showdown - December 2020 - DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr
This post is old news – Get fresh benchmarks at VPS Showdown (daily updates!)
With this month's post being the final one of the year, I thought it was best to get back to a comparison that included all of the providers that I cover. The last few months have not included Lightsail or UpCloud since they didn't offer the types of plans I was covering, but they are back for this "$5 Showdown".
I did include a few additional things in the overview this month, including hourly pricing and which providers offer DNS, firewalls, Kubernetes and a container registry.
As this year is coming to a close, Linode has added a firewall offering, which is currently in beta and their managed database offering is still no where in sight.
Other than that, things have been fairly quiet on the VPS front. As per usual this month's comparison features Ubuntu 20.04 LTS on all of the servers. I spun up 3 instances with each provider at the $5 per month price point ($6 for Vultr's High Frequency plan), and averaged the results accordingly.
Also worth noting, I did omit the speed test metrics again this month. For some reason I can't get the servers in / around New York to use the server here at University of Texas in Austin. I'm hoping to make some improvements to my benchmark script over the holidays that will allow me to easily bring those back next year.
Overview
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Location | New York 1 | Virginia, Zone A | Newark, NJ | US-NYC1 | New York (NJ) |
| Base Price | $5/month | $5/month | $5/month | $5/month | $6/month |
| Hourly Price | $0.007/hour | $0.007/hour | $0.0075/hour | $0.007/hour | $0.015/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 SSD | 40 GB SSD | 25 GB SSD | 25 GB SSD | 32 GB NVMe SSD |
| Transfer | 1 TB | 2 TB | 1 TB | 1 TB | 1 TB |
| Backups | $1/month | N/A | $2/month | $1/month | $1.20/month |
| Transfer Overage | $0.01/GB | $0.09/GB | $0.01/GB | $0.01/GB | $0.01/GB |
| DNS | Yes | Yes | Yes | No | Yes |
| Firewall | Yes | Yes | In beta | Yes | Yes |
| Load Balancer | $10/month | $18/month | $10/month | No | $10/month |
| Block Storage | $0.10/GB | $0.10/GB | $0.10/GB | $0.223/GB | $0.10/GB |
| Object Storage | Yes | Yes | Yes | Yes | 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 |
| Kubernetes | Yes | Yes | Yes | No | No |
| Container Registry | Yes | Yes | No | No | No |
CPU Info
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| CPU MHz | 2098.20 | 2399.97 | 2500.00 | 2894.56 | 3696.03 |
| Cache Size (KB) | 4096.00 | 30720.00 | 11093.33 | 512.00 | 16384.00 |
| BogoMips | 2729.67 | 3200.33 | 3066.33 | 3859.67 | 4928.00 |
CPU
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Events per Second | 764.09 | 762.39 | 1025.30 | 1631.18 | 1209.72 |
| Minimum (ms) | 1.30 | 1.19 | 1.10 | 0.58 | 0.82 |
| Average (ms) | 1.36 | 1.31 | 1.12 | 0.61 | 0.83 |
| Maximum (ms) | 5.61 | 4.77 | 4.29 | 3.73 | 2.43 |
Memory (Read)
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Ops per Second | 3606218.50 | 524876.70 | 4074947.80 | 4977528.27 | 5807310.59 |
| 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.29 | 0.71 | 2.93 | 0.28 | 0.24 |
Memory (Write)
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Ops per Second | 3636284.01 | 523692.50 | 4114568.69 | 5007188.85 | 5752742.37 |
| 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.43 | 0.18 | 2.22 | 2.10 | 0.25 |
File I/O
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Reads per Second | 1512.88 | 1166.50 | 2082.46 | 2500.86 | 4870.70 |
| Writes per Second | 1008.57 | 777.69 | 1388.28 | 1667.24 | 3247.12 |
| Fsyncs per Second | 3232.86 | 2493.20 | 4449.97 | 5342.93 | 10395.89 |
| Minimum (ms) | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| Average (ms) | 0.18 | 0.22 | 0.13 | 0.10 | 0.05 |
| Maximum (ms) | 8.12 | 21.84 | 15.12 | 11.60 | 2.91 |
MySQL
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Transactions per Second | 1460.00 | 1297.33 | 2481.67 | 2614.67 | 4231.33 |
| Queries per Second | 29200.00 | 25946.67 | 49633.33 | 52293.33 | 84626.67 |
| Minimum (ms) | 4.27 | 4.78 | 2.89 | 2.48 | 1.81 |
| Average (ms) | 6.87 | 7.71 | 4.25 | 3.86 | 2.36 |
| Maximum (ms) | 31.35 | 39.16 | 26.66 | 22.47 | 12.11 |
Redis
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| PING_INLINE | 34832.79 | 44898.95 | 54410.46 | 88034.55 | 57833.02 |
| PING_BULK | 34879.12 | 45028.39 | 51596.19 | 93340.43 | 57803.25 |
| SET | 36313.01 | 45481.71 | 55073.41 | 92756.39 | 59668.51 |
| GET | 35710.74 | 45491.09 | 54459.44 | 92400.28 | 58768.76 |
| INCR | 36483.82 | 45653.36 | 54901.39 | 94380.33 | 58914.81 |
| LPUSH | 39149.73 | 45679.13 | 52840.52 | 84920.41 | 60713.30 |
| RPUSH | 37526.57 | 45594.05 | 53131.75 | 94243.49 | 60156.89 |
| LPOP | 38377.70 | 45552.13 | 53942.96 | 89494.79 | 60564.54 |
| RPOP | 36109.04 | 45653.77 | 54303.31 | 94112.85 | 60213.34 |
| SADD | 35409.13 | 45452.01 | 55395.11 | 95689.68 | 59078.41 |
| HSET | 37140.64 | 45742.36 | 53343.39 | 91132.92 | 60898.79 |
| SPOP | 35433.20 | 45509.86 | 53939.87 | 88640.19 | 58735.34 |
| LRANGE_100 (first 100 elements) | 23437.21 | 29657.86 | 24618.10 | 38734.61 | 40824.53 |
| LRANGE_300 (first 300 elements) | 9943.91 | 13000.57 | 8700.84 | 17347.39 | 17294.47 |
| LRANGE_500 (first 500 elements) | 7062.33 | 9369.08 | 6884.12 | 12720.73 | 11942.01 |
| LRANGE_600 (first 600 elements) | 5434.69 | 7699.05 | 5629.31 | 9888.90 | 9741.73 |
| MSET (10 keys) | 29788.12 | 38190.69 | 39666.00 | 52331.61 | 49823.70 |
Apache Benchmark (against nginx on the servers)
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Requests per Second | 248.20 | 203.19 | 1047.16 | 217.42 | 209.52 |
| Time per Request (ms) (mean) | 2039.90 | 2719.08 | 1672.95 | 2311.41 | 2539.84 |
| Transfer Rate (Kbyte/sec) | 208.21 | 170.44 | 878.43 | 182.39 | 175.75 |
Conclusion
Pretty consistent with previous months, Vultr's High Frequency plan performed exceptionally well compared to the standard plans with the other providers.
It was interesting to see UpCloud process more CPU events as well as Vultr taking back one of the Redis metrics from them, as UpCloud tends to crush the Redis category otherwise.
Linode's Apache ab benchmark was exceptional, but as always, I feel like that
metric should be taken with a grain of salt, as it's wholly dependent on my home
ISP and is subject to any throttling they end up doing (and they definitely do
throttle me from time to time while running ab.
Super excited for what 2021 has to offer. DigitalOcean seems to continually position themselves as an AWS alternative with a more robust offering of services. Hopefully Linode can get managed databases over the line and maybe some of the other providers have some tricks up their sleeves for next year too!
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)
- UpCloud, new accounts receive €25 in credit (yes, that’s in Euros)
- Vultr, new accounts also receive $100 in credit (good for only 14 days)