VPS Showdown - November 2019 - DigitalOcean vs. Lightsail vs. Linode vs. UpCloud vs. Vultr
This post is old news – Get fresh benchmarks at VPS Showdown (daily updates!)
Not a ton of movement since last month, other than DigitalOcean's announcement of their memory-optimized droplets being generally available.
I decided to bring things back state-side again, targeting the west coast data centers for each provider.
As always, I'm using Ubuntu 18.04 LTS for the operating system and the metrics below are the average of running benchmarks on 3 separate instances.
Overview
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Location | San Francisco 2 | Oregon, Zone A | Fremont, CA | San Jose 1 | Silicon Valley |
| 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 | 32GB NVMe |
| Transfer | 1 TB | 2 TB | 1 TB | 1 TB | 1 TB |
| Base Price | $5/month | $5/month | $5/month | $5/month | $6/month |
| Backups | $1/month | N/A | $2/month | $0.06/GB | $1.20/month |
| Transfer Overage | $0.01/GB | $0.09/GB | $0.02/GB | $0.056/GB | $0.01/GB |
| Load Balancer | $10/month | $18/month | $10/month | N/A | N/A |
| Block Storage | $0.10/GB | $0.10/GB | $0.10/GB | $0.223/GB | $0.10/GB |
CPU Info
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| CPU MHz | 2294.61 | 2400.07 | 2200.00 | 2992.97 | 3792.00 |
| Cache Size (KB) | 25344.00 | 30720.00 | 11093.33 | 16384.00 | 16384.00 |
| BogoMips | 3059.67 | 3200.33 | 2866.33 | 3990.33 | 5056.33 |
CPU
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Events per Second | 1005.84 | 874.34 | 924.02 | 1203.79 | 1255.63 |
| Minimum (ms) | 0.92 | 1.03 | 1.11 | 0.78 | 0.74 |
| Average (ms) | 0.99 | 1.14 | 1.13 | 0.83 | 0.79 |
| Maximum (ms) | 1.93 | 1.80 | 3.04 | 152.49 | 1.33 |
Memory (Read)
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Ops per Second | 3965494.40 | 837273.56 | 3456481.27 | 4641479.71 | 5146603.45 |
| 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 | 3.33 | 2.12 | 65.11 | 0.34 |
Memory (Write)
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Ops per Second | 3963600.14 | 832767.42 | 3461369.81 | 4666715.41 | 5099145.58 |
| 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.94 | 7.47 | 2.12 | 24.17 | 0.69 |
File I/O
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Reads per Second | 1560.71 | 1232.05 | 1857.68 | 3983.20 | 4363.38 |
| Writes per Second | 1040.44 | 821.36 | 1238.43 | 2655.47 | 2908.92 |
| Fsyncs per Second | 3320.84 | 2620.07 | 3960.25 | 8492.74 | 9305.25 |
| Minimum (ms) | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| Average (ms) | 0.19 | 0.21 | 0.14 | 0.07 | 0.06 |
| Maximum (ms) | 8.05 | 82.38 | 14.62 | 34.45 | 5.16 |
MySQL
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Transactions per Second | 1964.33 | 2068.33 | 3209.33 | 5528.00 | 5756.00 |
| Queries per Second | 39286.67 | 41366.67 | 64186.67 | 110560.00 | 115120.00 |
| Minimum (ms) | 2.40 | 2.36 | 2.19 | 1.26 | 1.24 |
| Average (ms) | 5.69 | 4.86 | 3.19 | 1.92 | 1.74 |
| Maximum (ms) | 668.31 | 39.11 | 19.04 | 18.18 | 16.09 |
Redis
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| PING_INLINE | 51967.11 | 55987.24 | 49241.33 | 69734.77 | 60371.84 |
| PING_BULK | 51745.97 | 54011.31 | 47991.47 | 61022.92 | 59914.64 |
| SET | 51972.08 | 55760.08 | 49758.36 | 66116.45 | 59443.67 |
| GET | 51462.91 | 57304.68 | 48683.80 | 69686.45 | 61233.79 |
| INCR | 51849.91 | 57840.73 | 49408.80 | 70138.77 | 60627.12 |
| LPUSH | 52150.06 | 55756.51 | 47308.04 | 70651.22 | 61014.84 |
| RPUSH | 51729.48 | 56014.83 | 48703.52 | 68769.02 | 61199.08 |
| LPOP | 51808.76 | 55642.28 | 47576.14 | 68284.68 | 60136.65 |
| RPOP | 51393.86 | 56793.26 | 48757.92 | 68353.87 | 59807.38 |
| SADD | 52637.80 | 58259.88 | 48651.72 | 70245.29 | 61233.90 |
| HSET | 52739.37 | 55690.74 | 48820.40 | 69410.35 | 59836.44 |
| SPOP | 51674.08 | 58722.45 | 48664.36 | 69086.78 | 60381.24 |
| LRANGE_100 (first 100 elements) | 29698.64 | 30700.17 | 24030.22 | 36266.54 | 34506.45 |
| LRANGE_300 (first 300 elements) | 12264.51 | 12143.63 | 9467.60 | 16103.44 | 14684.28 |
| LRANGE_500 (first 500 elements) | 8326.10 | 8533.22 | 6392.88 | 11069.14 | 10784.88 |
| LRANGE_600 (first 600 elements) | 6659.50 | 6772.53 | 5125.97 | 8784.52 | 8886.75 |
| MSET (10 keys) | 43391.45 | 40877.83 | 36398.87 | 61944.55 | 52810.22 |
Speed Test
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Distance (km) | 2134.46 | 2573.93 | 2372.79 | 1456.73 | 2357.97 |
| Latency (ms) | 58.434 | 75.205 | 57.782 | 69.710 | 60.065 |
| Download (Mbit/s) | 943.96 | 67.08 | 59.27 | 562.46 | 898.68 |
| Upload (Mbit/s) | 380.06 | 55.57 | 314.48 | 111.84 | 326.54 |
Apache Benchmark (against nginx on the servers)
| DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
|---|---|---|---|---|---|
| Requests per Second | 280.41 | 232.30 | 295.41 | 294.77 | 249.71 |
| Time per Request (ms) (mean) | 1788.33 | 2484.47 | 1692.60 | 1696.59 | 2034.86 |
| Transfer Rate (Kbyte/sec) | 235.23 | 194.87 | 247.81 | 247.28 | 209.47 |
Conclusion
The Vultr High Frequency instances are still continuing to impress, even with the trivially higher price tag. UpCloud has continued to do fairly well, especially with the Redis benchmarks and DigitalOcean and Linode both shined in network speed and Apache benchmarks respectively.
That said, from a user experience standpoint, both DigitalOcean and Vultr are really leading the way. Linode's new dashboard is an improvement, but still missing the mark when it comes to spinning up multiple servers in one shot.
UpCloud's interface feels like it's a bit speedier than I remember, but I had noticed a bug when creating a new instance, that allowed me to click the deploy button twice, and I ended up creating more servers than I needed. Keep an eye out for that one if you're creating new servers.
As always, if you found this benchmarks to be helpful in your quest for a hosting provider, please consider using one of my referral links below.
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)
:wq
Like this drivel? There's a whole RSS feed of it, or subscribe via email.