Why not check out the latest comparison?
Switching things up a bit for Spooktober (doot doot) by running some benchmarks on the CPU-centric plans. Unfortunately, Lightsail and UpCloud are lacking this sort of offering, so they are omitted this month.
It’s also worth noting that even though all of the plans are touting a dedicate CPU, it’s not nearly as cut and dry of a comparison as the shared plans are. Each provider has their own naming and definition around what is “dedicated CPU” and in terms of what they offer.
As you’ll see below, that the storage and RAM offerings vary greatly. The consistent metric is the CPU which I targeted plans that offered 2 cores.
Something else I had learned while doing this month’s post, is that DigitalOcean offers dedicated CPUs outside of their CPU-Optimized plan, if you opt for General Purpose droplet.
As per usual, I spun up 3 instances with each provider, running Ubuntu 20.04 LTS and averaged the results.
Overview
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Location | New York 1 | Newark, NJ | New York (NJ) |
Plan | CPU-Optimized | Dedicated CPU | Dedicated Cloud |
RAM | 4 GB | 4 GB | 8 GB |
CPU | 2 Cores | 2 Cores | 2 Cores |
Storage | 25 GB SSD | 80 GB SSD | 120 GB SSD |
Transfer | 4 TB | 4 TB | 10 TB |
Base Price | $40/month | $30/month | $60/month |
Backups | $8/month | $5/month | N/A |
Transfer Overage | $0.01/GB | $0.01/GB | $0.01/GB |
Load Balancer | $10/month | $10/month | $10/month |
Block Storage | $0.10/GB | $0.10/GB | $0.10/GB |
Object Storage | Yes | Yes | Yes |
Managed Databases | Yes | On 2020 Roadmap | No |
2FA/MFA | Yes | Yes | Yes |
One-click Apps | Yes | Yes | Yes |
Custom Images | Yes | Yes | Yes |
As mentioned, the plans actually vary quite a bit. It’s kind of hard to cut through the noise since everybody uses their own marketing speak and have sliced up their plans in a variety of different ways.
If going on this data alone, Linode is the least expensive, with Vultr offering the most memory, storage and bandwidth.
Vultr also doesn’t offer automated backups the way they do with their shared plans, so you would have to roll your own solution.
CPU Info
DigitalOcean | Linode | Vultr | |
---|---|---|---|
CPU MHz | 2693.67 | 2666.66 | 3566.67 |
Cache Size (KB) | 4096.00 | 512.00 | 16384.00 |
BogoMips | 3591.67 | 3866.33 | 4734.00 |
CPU
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Events per Second | 1106.16 | 1531.07 | 1048.47 |
Minimum (ms) | 0.87 | 0.64 | 0.88 |
Average (ms) | 0.90 | 0.66 | 0.95 |
Maximum (ms) | 5.83 | 5.06 | 2.46 |
Memory (Read)
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Ops per Second | 5094289.12 | 3975149.27 | 5817321.15 |
Minimum (ms) | 0.00 | 0.00 | 0.00 |
Average (ms) | 0.00 | 0.00 | 0.00 |
Maximum (ms) | 0.40 | 5.48 | 0.87 |
Memory (Write)
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Ops per Second | 5100399.83 | 3971784.60 | 5700781.33 |
Minimum (ms) | 0.00 | 0.00 | 0.00 |
Average (ms) | 0.00 | 0.00 | 0.00 |
Maximum (ms) | 0.17 | 2.13 | 0.78 |
File I/O
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Reads per Second | 2003.89 | 5762.53 | 5053.47 |
Writes per Second | 1335.92 | 3841.68 | 3368.98 |
Fsyncs per Second | 4284.09 | 12298.75 | 10787.80 |
Minimum (ms) | 0.00 | 0.00 | 0.00 |
Average (ms) | 0.13 | 0.06 | 0.05 |
Maximum (ms) | 23.28 | 19.32 | 14.77 |
MySQL
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Transactions per Second | 2420.67 | 2692.67 | 3001.67 |
Queries per Second | 48413.33 | 53853.33 | 60033.33 |
Minimum (ms) | 2.55 | 2.83 | 2.34 |
Average (ms) | 4.17 | 4.29 | 3.35 |
Maximum (ms) | 63.29 | 20.48 | 29.17 |
Redis
DigitalOcean | Linode | Vultr | |
---|---|---|---|
PING_INLINE | 89284.39 | 117996.66 | 108871.57 |
PING_BULK | 88759.92 | 118254.15 | 105547.96 |
SET | 90692.49 | 118869.29 | 110511.94 |
GET | 88496.62 | 119651.53 | 113264.30 |
INCR | 91005.31 | 119695.11 | 108119.24 |
LPUSH | 92945.98 | 120347.78 | 110116.96 |
RPUSH | 92202.63 | 122027.63 | 112728.57 |
LPOP | 92722.92 | 121448.60 | 113522.00 |
RPOP | 91732.82 | 118374.13 | 111238.60 |
SADD | 91386.93 | 119803.38 | 110876.15 |
HSET | 93438.05 | 124217.81 | 110985.49 |
SPOP | 90229.81 | 119803.74 | 112000.44 |
LRANGE_100 (first 100 elements) | 50068.06 | 58536.91 | 73253.70 |
LRANGE_300 (first 300 elements) | 18699.89 | 21746.83 | 34034.45 |
LRANGE_500 (first 500 elements) | 12414.00 | 14587.64 | 24051.02 |
LRANGE_600 (first 600 elements) | 10017.71 | 11585.54 | 20027.79 |
MSET (10 keys) | 66928.76 | 88184.31 | 109750.60 |
Apache Benchmark (against nginx
on the servers)
DigitalOcean | Linode | Vultr | |
---|---|---|---|
Requests per Second | 213.61 | 243.27 | 183.66 |
Time per Request (ms) (mean) | 2394.50 | 2066.90 | 3039.19 |
Transfer Rate (Kbyte/sec) | 179.19 | 204.07 | 154.07 |
Conclusion
Because this month’s comparison isn’t nearly as apples to apples as my comparison of the shared plans, I’m not feeling too comfortable (or confident) in saying one provider performed the very best.
Each had their strengths and weaknesses, and as always, you should make a decision on a provider based around you and your application’s needs and not on raw benchmarks alone.
- DigitalOcean, new accounts receive $100 in credit (good for 60 days).
- Linode, new accounts receive $100 in credit (good for 60 days).
- UpCloud, new accounts receive $25 in credit.
- Vultr, new accounts receive $100 in credit (good for 30 days).
Or if you’re feeling really generous, show off your favorite tech stack by picking up a shirt!