Brand new year with a brand new VPS Showdown, and I know what you’re thinking, “Why have you not included my favorite provider into your comparisons yet”?
Big reason has to do with time, while these posts have become more optimized, they still take a chunk of my time every month to put together as well as provide some commentary on the matter.
I doubt things will get to the point that I include every single provider on the
planet (nor would I want to, for reasons below), but I am constantly striving to
improve these posts in a way that not only provides more value, but also to
limit my time investment to make it easier to include additional hosting
companies in the future.
The other thing to consider when asking me why I don’t include insert name of
some deep discount provider is that often times I look into the provider and
simply put, they kind of suck. They either fall extremely short in terms of
performance or they just don’t seem to be keeping up with the trends of a modern VPS product offering.
So yeah, price point isn’t necessarily everything with these posts.
A lot of times too, they are hyper regional providers that only have a couple of
data centers half way across the world from me. While I do like to dabble with
instances in different regions, I also like to focus on companies that have a
strong global presence and aren’t wholly focused in one area.
With all of that said, 2019 was a pretty exciting year in regard to improved VPS
offerings. DigitalOcean has continued to poise itself as an AWS killer, Linode’s
finally updated their UI and Vultr has continually wowed me with their “High
Frequency” instances.
Linode recently dropped their 2020 roadmap which includes venturing into bare metal instances and managed databases which should really heat things up between them and DigitalOcean (which is the comparison that started all of this so many moons ago).
Even though things are moving in the right direction across many of the providers I review (at an incredible pace), after over 20 months of comparisons,
here’s some of my pain points / what I’d like to see in 2020:
- DigitalOcean – The ability to scale down droplets to plans with smaller disks.
- Lightsail – More variety of instances like CPU and RAM optimized plans.
- Linode – The ability to spin up multiple instances at once from the UI.
- UpCloud – Reduce how many steps / clicks it takes to delete an instance.
It’s so cumbersome that I accidentally forgot to delete an instance last
month. - Vultr – Managed load balancers and databases.
Keep in mind that some of these items may apply to multiple providers, so no
need to comment about how Vultr doesn’t allow scaling down as well.
All right, enough banter, here’s the deal for this month, VPS comparison of $20
plans. Three instances are spun up for each provider and the results averaged
together. Each instance running Ubuntu 18.04 LTS, which will probably continue through most of this year since Amazon is notoriously slow with the roll out of new distro releases.
Overview
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Location | New York 1 | Virginia, Zone A | Newark, NJ | Chicago 1 | New Jersey |
RAM | 4 GB | 4 GB | 4 GB | 4 GB | 4 GB |
CPU | 2 Cores | 2 Cores | 2 Cores | 2 Cores | 2 Cores |
Storage | 80 GB SSD | 80 GB SSD | 80 GB SSD | 80 GB SSD | 128GB NVMe |
Transfer | 4 TB | 4 TB | 4 TB | 4 TB | 3 TB |
Base Price | $20/month | $20/month | $20/month | $20/month | $24/month |
Backups | $4/month | N/A | $5/month | $0.06/GB | $4.80/month |
Transfer Overage | $0.01/GB | $0.09/GB | $0.01/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 |
Object Storage | Yes | Yes | Yes | No | 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 |
Bare Metal | No | No | On 2020 Roadmap | No | Yes |
Expanded this one a bit into the new year, to include even more features in the
comparison. Linode recently dropped the price of their transfer overage putting them on par with the best priced providers. Usually Lightsail offers up more storage and bandwidth for the money, but at the $20 price point they are
comparable to the non-NVMe providers. Vultr slipping a bit offering 1TB less in
transfer, but a ton more storage.
CPU Info
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
CPU MHz | 1933.33 | 2333.42 | 2500.00 | 2997.65 | 3792.00 |
Cache Size (KB) | 30720.00 | 40960.00 | 16384.00 | 16384.00 | 16384.00 |
BogoMips | 2666.33 | 3134.00 | 3333.00 | 3995.33 | 5056.67 |
Fairly comparable to previous months with DigitalOcean falling a bit lower than
usual, probably due to an instance or two being on older hardware. Worth noting, Vultr’s CPU has been consistently coming in at 3,792.00
every month, which I suspect may be due to the High Frequency instances all being on the same newer hardware.
CPU
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Events per Second | 663.17 | 897.08 | 787.10 | 1122.37 | 1338.71 |
Minimum (ms) | 1.35 | 1.10 | 1.24 | 0.87 | 0.74 |
Average (ms) | 1.51 | 1.11 | 1.27 | 0.90 | 0.75 |
Maximum (ms) | 3.19 | 3.06 | 15.37 | 1.27 | 1.02 |
Vultr coming in just a click ahead of UpCloud on this one. The events per second all seem to be where they should considering the aforementioned CPU MHz values.
Memory (Read)
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Ops per Second | 2816596.11 | 802079.85 | 3328389.37 | 4570721.66 | 5494374.53 |
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.77 | 2.26 | 7.16 | 0.07 | 0.13 |
While not beating out Vultr for the most operations per second, UpCloud not only had a nice showing but had the fastest maximum. Never a shock, but Lightsail always comes in pretty light on memory benchmarks.
Memory (Write)
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Ops per Second | 2763679.11 | 800991.75 | 3289963.54 | 4590462.69 | 5457127.84 |
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.74 | 0.94 | 13.29 | 0.09 | 0.12 |
Memory write benchmarks tend to clock in right around the same as the memory read benchmarks. Not much of a shock here, outside of Linode and Lightsail’s maximums being a bit higher and lower, respectively.
File I/O
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Reads per Second | 1481.15 | 2235.43 | 2579.26 | 4713.09 | 9612.17 |
Writes per Second | 987.43 | 1490.29 | 1719.51 | 3142.06 | 6408.11 |
Fsyncs per Second | 3152.29 | 4761.22 | 5497.86 | 10048.11 | 20502.36 |
Minimum (ms) | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
Average (ms) | 0.18 | 0.12 | 0.11 | 0.06 | 0.03 |
Maximum (ms) | 12.00 | 53.83 | 45.83 | 12.76 | 0.84 |
Vultr’s file I/O performance tends to be better than the pack at lower price points, but they really widen the gap at the higher priced plan.
MySQL
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Transactions per Second | 1279.67 | 2127.00 | 2625.33 | 4481.00 | 6457.00 |
Queries per Second | 25593.33 | 42540.00 | 52506.67 | 89620.00 | 129140.00 |
Minimum (ms) | 5.45 | 2.48 | 2.11 | 1.49 | 1.15 |
Average (ms) | 7.86 | 4.70 | 3.83 | 2.27 | 1.55 |
Maximum (ms) | 38.54 | 111.29 | 39.76 | 27.73 | 14.03 |
Not surprising, as the file I/O benchmarks tend to be fairly indicative of MySQL
benchmarks, Vultr swept every metric.
Redis
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
PING_INLINE | 53560.51 | 96061.72 | 72435.38 | 107198.80 | 124794.42 |
PING_BULK | 53222.32 | 96559.29 | 70726.87 | 108191.46 | 123838.34 |
SET | 52457.85 | 96407.23 | 69679.56 | 108218.65 | 125052.26 |
GET | 53921.44 | 95938.97 | 70514.14 | 106515.14 | 125139.58 |
INCR | 53964.79 | 97057.45 | 68937.53 | 108452.16 | 125720.58 |
LPUSH | 56205.73 | 96560.52 | 67875.84 | 108418.71 | 125309.78 |
RPUSH | 54899.84 | 96533.94 | 74624.78 | 109195.04 | 125746.21 |
LPOP | 54579.99 | 96681.50 | 67916.69 | 108425.03 | 124798.17 |
RPOP | 53123.25 | 97025.82 | 67246.63 | 108325.47 | 124231.50 |
SADD | 52763.21 | 97188.62 | 61204.10 | 110395.27 | 125641.78 |
HSET | 53798.24 | 97630.54 | 62001.31 | 105078.98 | 125768.47 |
SPOP | 58771.27 | 97371.16 | 69312.93 | 106943.11 | 125384.11 |
LRANGE_100 (first 100 elements) | 30847.51 | 54542.78 | 38119.07 | 63712.64 | 74375.23 |
LRANGE_300 (first 300 elements) | 12854.08 | 20333.95 | 11987.27 | 24930.60 | 29282.86 |
LRANGE_500 (first 500 elements) | 8489.54 | 13363.07 | 7766.10 | 16563.57 | 19470.33 |
LRANGE_600 (first 600 elements) | 6541.24 | 10444.40 | 6213.01 | 13368.27 | 15501.00 |
MSET (10 keys) | 48316.96 | 77780.66 | 73180.43 | 106224.30 | 125730.47 |
This one is interesting, as in previous months, as Vultr has excelled in most other categories, UpCloud has always shown better performance with Redis. I’ve never had a solid explanation as to why, but does seem that it may be a trait of the lower priced plans, as Vultr swept this one as well.
Speed Test
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Distance (km) | 2435.00 | 2090.30 | 2421.44 | 1456.73 | 2395.89 |
Latency (ms) | 45.411 | 40.256 | 47.022 | 41.709 | 46.198 |
Download (Mbit/s) | 1086.91 | 128.87 | 58.27 | 1507.32 | 456.34 |
Upload (Mbit/s) | 463.75 | 99.86 | 395.15 | 207.85 | 408.68 |
The first of two controversial metrics, the speed test, actually gave some fairly consistent metrics to previous months. This one is a YMMV since it’s hard to get a true speed test since there are so many factors at play, distance being the most obvious one published here.
Apache Benchmark (against nginx
on the servers)
DigitalOcean | Lightsail | Linode | UpCloud | Vultr | |
---|---|---|---|---|---|
Requests per Second | 297.33 | 280.27 | 274.27 | 292.03 | 188.63 |
Time per Request (ms) (mean) | 1684.56 | 1790.08 | 1839.04 | 1714.78 | 2950.57 |
Transfer Rate (Kbyte/sec) | 249.42 | 235.11 | 230.08 | 244.98 | 158.24 |
Another controversial metric, that I nearly through out completely for this year’s posts since it was giving me so much trouble earlier today. Nearly every
provider with the exception of Vultr, had to be restarted a few times due to
timeouts and other anomalies. I tend to blame my Internet provider and the load of our neighborhood more than the providers themselves.
Even though it should be taken with a grain of sale, DigitalOcean did end up
putting up some decent numbers.
Conclusion
Even with a lack of managed services (like load balancers and databases), it’s
hard to deny the power of Vultr’s High Frequency offering. At only $4 more per
month than their Cloud Compute plan, and everybody else’s $20 offering, the
performance makes it more than worth it in my opinion.
As always, if you found these benchmarks helpful in your 2020 quest to find a
new hosting provider, much appreciation if you were to use one of my referral
links below.
As always, comment below to let me know which provided you ended up going with, to point out any issues you may see, or hell, just to let me know which VPS provider I need to include in future posts 😉
Happy New Year!