Updated on March 6th, 2017 since Vultr has updated their $5 offering. The data
tables have been updated and the applicable sections have updates near the end
of the section.
Usually I wait to run fresh benchmarks on all providers, but the comments
section has been blowing up about Vultr’s update.
Every time I post a $10 VPS Hosting Showdown, I am flooded with
comments from people that want to focus solely on the price. Regardless of the
benchmark results, they always say the same thing, Linode needs a $5 plan.
When somebody mentions this, I always say the same thing, “given enough time
they will probably offer a $5 plan”. I said the same thing when people were
barking about how Linode didn’t even have a $10 plan.
And here we are, Linode is now offering $5 per month instances!
They also added high memory instances and added more SSD storage to their $10
per month plan. Expect some other showdowns soon 🙂
Overview
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Memory | 1GB | 512MB | 512MB | 1024MB |
Processor | 1 Core | 1 Core | 1 Core | 1 Core |
Storage | 20GB SSD | 20GB SSD | 20GB SSD | 25GB SSD |
Transfer | 1TB | 1TB | 1TB | 1000GB |
Overage | $0.02/GB | $0.02/GB | $0.09/GB | $0.02+/GB |
Network In | 40Gbps | 1Gbps | ??? | ??? |
Network Out | 1000Mbps | 1Gbps | ??? | ??? |
Price | $5/month | $5/month | $5/month | $5/month |
$0.0075/hour | $0.007/hour | $0.007/hour | $0.007/hour |
Right out of the gate Linode is offering twice as much RAM as DigitalOcean and
Amazon Lightsail, and 256MB more than Vultr. Even though Vultr is offering a bit
more RAM, they offer 25% less storage.
All servers were built out running Ubuntu 16.04 LTS x64 and with the exception
of Lightsail (in Virginia) the rest of the instances were in the New York / New
Jersey area.
Even though all of the companies are at the same price (except Linode’s hourly
which is slightly highter), each offers their own special. Amazon offers your
first month free without any promo code, while everybody else offers credit that
is enough to cover at least 2 months in the case of Linode and DigitalOcean and
since their bonus code expired, Vultr is also back down to 2 months.
Quick note, when running my benchmarks, Vultr borked during software update.
Unsure the cause, but I had received an error that it couldn’t get the lock.
I’ve seen the error before by running apt more than once, but never on a brand
new server that I was the only person logged in.
* March 6th, 2017 Update Vultr bumped their plan from 768MB to 1024MB of RAM
and from 15 to 25GB of storage. They now have a comparable RAM offering to that
of Linode and slightly more storage than all competitors.
CPU Info
So what exactly is underneath the hood? Here’s some abridged data from
/proc/cpuinfo
cat /proc/cpuinfo
Model Name | CPU MHz | Cache Size | BogoMips | |
---|---|---|---|---|
Linode | Intel(R) Xeon(R) CPU E5-2680 v2 | 2,799.998 | 4,096KB | 5,602.32 |
DigitalOcean | Intel(R) Xeon(R) CPU E5-2630L v2 | 2,399.998 | 15,360KB | 4,799.99 |
Lightsail | Intel(R) Xeon(R) CPU E5-2676 v3 | 2,400.060 | 30,720KB | 4,800.12 |
Vultr | Virtual CPU a7769a6388d5 | 2,394.454 | 4,096KB | 4,788.90 |
I’m not the most versed in hardware, but it looks like Linode, DigitalOcean and
Lightsail have comparable CPUs with Linode having the fastest of the bunch. Even
with what appears to be an older CPU, Vultr’s speed came in second.
* March 6th, 2017 Update Vultr originally reported an Intel Xeon E3-12xx v2
(Ivy Bridge) clocking in at 2599.996. On the box I spun up to run updated
benchmarks, the CPU was reported as Virtual CPU a7769a6388d5 and only
2394.454MHz.
CPU Benchmarks
sysbench --test=cpu run
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Number of Events | 10,000 | 10,000 | 10,000 | 10,000 |
Total Time | 11.7018s | 13.0227s | 11.3688s | 11.7363s |
Event Execution | 11.6999s | 13.0198s | 11.3672s | 11.7331s |
Minimum Request | 1.16ms | 1.22ms | 1.03ms | 1.12ms |
Average Request | 1.17ms | 1.30ms | 1.14ms | 1.17ms |
Maximum Request | 1.44ms | 5.17ms | 2.16ms | 11.80ms |
95th Percentile | 1.18ms | 1.34ms | 1.21ms | 1.33ms |
For the most part, everybody performed about the same at the 9th percentile.
Linode’s max requests weren’t nearly as high as the other guys.
* March 6th, 2017 Update Vultr clocked in about the same as before. The
only notable difference is that the maximum request jumped from 4.18ms to
11.80ms.
Memory Benchmarks
Memory Reads
sysbench --test=memory run
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Number of Events | 104,857,600 | 104,857,600 | 104,857,600 | 104,857,600 |
Total Time | 41.4636s | 84.3949s | 71.4697s | 57.6430s |
Execution Time | 34.1515ms | 67.3855s | 56.8831s | 46.8024s |
Minimum Request | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Average Request | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Maximum Request | 3.65ms | 1.51ms | 0.23ms | 8.25ms |
95th Percentile | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Operations/sec | 2,522,822.27 | 1,242,463.36 | 1,467,161.71 | 1,819,085.95 |
MB/sec | 2,463.69 | 1,213.34 | 1,432.78 | 1,776.45 |
Memory Writes
sysbench --test=memory --memory-oper=write run
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Number of Events | 104,857,600 | 104,857,600 | 104,857,600 | 104,857,600 |
Total Time | 41.2297s | 81.5642s | 71.3810s | 56.7589s |
Execution Time | 34.1296s | 64.9544s | 56.8120s | 46.0790s |
Minimum Request | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Average Request | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Maximum Request | 0.42ms | 5.21ms | 0.19ms | 3.86ms |
95th Percentile | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Operations/sec | 2,543,252.11 | 1,285,584.18 | 1,468,984.58 | 1,847,421.59 |
MB/sec | 2,483.64 | 1,255.45 | 1,434.56 | 1,804.12 |
Somewhat expected, the providers offering more RAM ended up having faster
speeds. If RAM is important to you, you’d get more bang for your buck with
Linode or Vultr at the $5 price point.
* March 6th, 2017 Update Vultr remained in the #2 spot, but had slipped a
bit since the previous set of benchmarks.
File I/O Benchmarks
sysbench --test=fileio prepare
sysbench --test=fileio --file-test-mode=rndrw run
sysbench --test=fileio cleanup
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Number of Events | 10,000 | 10,000 | 10,000 | 10,000 |
Total Time | 1.9924s | 1.4641s | 6.6209s | 2.8518s |
Execution Time | 0.5274s | 0.5873s | 1.9269s | 1.6152s |
Minimum Request | 0.00ms | 0.00ms | 0.00ms | 0.00ms |
Average Request | 0.05ms | 0.06ms | 0.19ms | 0.16ms |
Maximum Request | 7.45ms | 1.80ms | 1.82ms | 5.50ms |
95th Percentile | 0.11ms | 0.10ms | 0.37ms | 0.41ms |
Requests/sec | 5,019.11 | 6,929.91 | 1,510.36 | 3,506.57 |
MB/sec | 78.424 | 106.72 | 23.599 | 54.79 |
Quite the mixed bag for the file I/O benchmarks. DigitalOcean performed a decent
percentage about Linode, and over 2x the requests per second of Vultr and over
4x that of Lightsail!
* March 6th, 2017 Update Vultr saw a slight improvement, but not enough to
change the outcome on this benchmark.
MySQL Benchmarks
mysql -uroot -e "CREATE DATABASE sbtest;"
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root run
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root cleanup
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Number of Events | 10,000 | 10,000 | 10,000 | 10,000 |
Total Time | 29.1639s | 43.8152s | 52.5180s | 32.7331s |
Execution Time | 29.1167s | 43.7459s | 52.4601s | 32.6649s |
Minimum Request | 2.16ms | 2.53ms | 2.37ms | 2.08ms |
Average Request | 2.91ms | 4.37ms | 5.25ms | 3.27ms |
Maximum Request | 884.57ms | 325.37ms | 171.01ms | 28.23ms |
95th Percentile | 3.03ms | 8.45ms | 13.58ms | 4.49ms |
Read/write Requests/sec | 6,514.91 | 4,336.39 | 3,617.80 | 5,804.53 |
Linode had the best performance at the 95th percentile and the most reads/write
requests per second but the maximum request time was nearly a second. Vultr was
second in read/writes but also had a significantly better maximum request time.
* March 6th, 2017 Update Vultr saw another bit of improvement, but not
enough to move the needle since last time.
Apache Benchmarks
ab -kc 1000 -n 10000 http://127.0.0.1/
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Concurrency Level | 1,000 | 1,000 | 1,000 | 1,000 |
Time taken | 3.044s | 1.991s | 1.285s | 1.406s |
Completed Requests | 10,000 | 10,000 | 10,000 | 10,000 |
Failed Requests | 10 | 11 | 4 | 2 |
Requests/sec | 3,285.22 | 5,023.11 | 7,784.84 | 7,110.55 |
Time per request | 304.393ms | 199.080ms | 128.455ms | 144.636ms |
Transfer rate Kbyte/sec | 37,276.91 | 56,990.74 | 88,386.49 | 80,746.67 |
Somebody had mentioned that I should do the Apache Benchmark with Nginx. I may
in the future if there’s enough interest. Nginx is my webserver of choice, but
using Apache with the Apache Benchmark utility makes sense to me for the sake of
these reviews.
* March 6th, 2017 Update Slight improvement from Vultr, but really just
more of the same.
Network Benchmarks
As mentioned before, I chose datacenters in New York / New Jersey for Linode,
DigitalOcean and Vultr. The Lightsail instance lives in Virginia.
./speedtest-cli --server=7340
Linode | DigitalOcean | Lightsail | Vultr | |
---|---|---|---|---|
Distance | 2,269.12 | 2,282.16km | 1,933.53km | 2,251.70km |
Ping | 92.124ms | 75.602ms | 65.945ms | 68.769ms |
Download Mbit/sec | 545.47 | 329.19 | 197.72 | 705.48 |
Upload Mbit/sec | 81.77 | 112.22 | 106.61 | 109.35 |
I like to include this metric but it always feels like a crap shoot with the
varying locations of the servers. Never an apples to apples comparison.
DigitalOcean’s upload time squeaked by Lightsail and Vultr while Linode was able
to blow past everybody in terms of download speed.
* March 6th, 2017 Update Decent bump in download speeds from Vultr with
this benchmark. The distance to the server ended up being about 1,000km less
though, which was weird because I spun up a Vultr instance int he same New York
(NJ) data center as last time and used the same speed test server in Houston.
Conclusion
Linode’s new plan is not only offering the consistently better performance I’ve
seen in past dollar for dollar comparisons, but also the single digit price
point that people have been craving.
Linode is still a bit behind the curve when it comes to things like block
storage volumes, default SSH keys and yeah, their UI. Patience is a virtue, and
given enough time, Linode always seems to deliver.
And when they deliver, it tends to blow everybody’s offerings out of the water.
That said, DigitalOcean also had a big announcement today and are now offering
Load Balancers for $20 per month. Linode has offered their version, called
Node Balancers for a while now, and at the same price point. Vultr and Lightsail
don’t current offer this, but you could also spin up an instance that serve as a
self-managed load balancer.
Linode’s announcement today is something I’d have expected on their birthday
later this year as that’s when they tend to make these announcements. Can’t wait
to see what’s in store in June!
Like all of my reviews, YMMV and you need to pick the provider that fits your
needs. If you do end up making a decision based on this review, I’d very much
appreciate it if you used my referral links for [Linode][linode],
[DigitalOcean][digitalocean] and/or [Vultr][vultrSpecial].
Amazon doesn’t do referrals, but you could always donate to Ubuntu
as that’s the Linux distro I use for these reviews.
Oh yeah, and Happy Valentine’s Day!
* March 6th, 2017 Update Vultr’s latest offering definitely helps them
compete with Linode by offering the same amount of RAM. If you are looking for
more storage for the buck, they would be the way to go. Otherwise, most of the
metrics saw an improvement, but nothing that made their offering better than
everybody else.
What’s interesting is that they are now offering a $2.50 plan that’s on par with
DigitalOcean and Amazon Lightsail’s $5 plans. Starts to seem like a race to the
bottom at a certain point. Time will tell if there needs to be a $2.50 showdown
in the future 😉