Every time I think that I’m done with this topic for a while, someone (usually
Linode) drops something new on us. The latest from Linode is the addition of a
10$ a month plan which nearly puts it in line with DigitalOcean in regard to low
tier pricing. Because of this change, I felt it was probably worth revisiting my
comparisons as all the previous articles were comparing the hosting companies at
the 20$ price point which was Linode’s smallest plan all of these years. To get
started, let’s take a look at the vanity metrics of what you get for your money:
DigitalOcean | Linode | |
---|---|---|
Price | $10/month | $10/month |
RAM | 1GB | 1GB |
CPU | 1 core | 1 core |
SSD Storage | 30GB | 24GB |
Included Bandwidth | 2TB | 2TB |
Bandwidth Overage | $0.02/GB | $0.10/GB (billed at $10/month in 100GB increments) |
Network In | 1Gbit | 40Gbit |
Network Out | 1Gbit | 125Mbit |
As you can see, DigitalOcean wins out on storage capacity and bandwidth overage
charges while Linode excels in the networking department while everything else
is exactly the same. Now let’s take a look at the performance. I went ahead and
spun up brand new instances on each platform (running Ubuntu 14.04 LTS 64-bit),
got the operating system up to date and then installed sysbench
and
mysql-server
:
sudo apt-get update && apt-get upgrade
sudo apt-get install sysbench mysql-server
Although not an officially tracked metric, running the aforementioned commands
appeared to run significantly faster on Linode than on DigitalOcean.
Additionally, the Linode instance was configured with a mere 128MB swap which
was subsequently disabled to be more in line with DigitalOcean’s lack of swap
via their setup interface:
swapoff -a
CPU
sysbench --test=cpu run
DigitalOcean | Linode | |
---|---|---|
Number of Events | 10000 | 10000 |
Execution Time | 19.5259s | 11.9861s |
Min. Request | 1.30ms | 1.16ms |
Avg. Request | 1.95ms | 1.20ms |
Max. Request | 103.26ms | 1.61ms |
Memory (read)
sysbench --test=memory run
DigitalOcean | Linode | |
---|---|---|
Number of Events | 104857600 | 104857600 |
Execution Time | 392.8576s | 437.5441s |
Min. Request | 0.00ms | 0.00ms |
Avg. Request | 0.00ms | 0.00ms |
Max. Request | 104.52ms | 3.37ms |
MB/sec | 260.65 | 234.03 |
Memory (write)
sysbench --test=memory --memory-oper=write run
DigitalOcean | Linode | |
---|---|---|
Number of Events | 104857600 | 104857600 |
Execution Time | 371.8564s | 437.3620s |
Min. Request | 0.00ms | 0.00ms |
Avg. Request | 0.00ms | 0.00ms |
Max. Request | 100.65ms | 0.67ms |
MB/sec | 275.38 | 234.13 |
File I/O
sysbench --test=fileio --file-total-size=4G prepare
sysbench --test=fileio --file-total-size=4G --file-test-mode=rndrw run
sysbench --test=fileio --file-total-size=4G cleanup
It’s worth noting that the prepare
command ran notably faster on Linode. In
fact, the run
was completed on the Linode instance before the prepare
was
done on the DigitalOcean droplet.
DigitalOcean | Linode | |
---|---|---|
Number of Events | 10000 | 10000 |
Execution Time | 5.7764s | 1.9483s |
Min. Request | 0.01ms | 0.01ms |
Avg. Request | 0.13ms | 0.15ms |
Max. Request | 10.36ms | 6.14ms |
Requests/sec | 1731.18 | 5132.57 |
MySQL
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=password prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=password run
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=password cleanup
As with the prior test, Linode out performed during the prepare
. Please note
that I also had to create the test
database before these commands would run.
DigitalOcean | Linode | |
---|---|---|
Number of Events | 10000 | 10000 |
Execution Time | 73.2422s | 29.2023s |
Min. Request | 2.82ms | 2.31ms |
Avg. Request | 7.31ms | 2.91ms |
Max. Request | 97.01ms | 30.70ms |
Read/write Requests/sec | 2594.13 | 6506.34 |
Performance Conclusion
Based on the results of sysbench
, it still looks like Linode outperforms
DigitalOcean in everything except reading / writing to / from memory. These
results are pretty consistent with the results that I saw previously using 20$
worth of servers instead of 10$.
Referral Program
I always include referral links for both DigitalOcean and Linode in my posts but
I’ve never factored the programs into any of these throwdowns. I am choosing to
do so today because DigitalOcean recently upped their referral program from 10$
to 25$ per referred customer that totaled the same amount in billings. Linode
has always offered 20$ per referred customer that stayed with the company for 90
days. The major difference between the programs is that DigitalOcean will pay
you in credit or in cash money to a PayPal account whereas Linode only offers
credit.
What’s interesting about DigitalOcean’s change is that even though you can now
earn more credit / cash, it takes longer and gives more of a window for a
referred customer to bail and you not get anything. At the moment, I’m unsure if
this change will end up being in favor of DigitalOcean or their affiliate
network. Thus far, I don’t feel like I’ve missed out on anything and I’m pleased
with the increased affiliate revenue.
Final Thoughts
I use both companies for various things, specifically I host a site I bought
off of Flippa on a small
DigitalOcean droplet and I maintain a server with Linode just so I can continue
to use their DNS.
Linode still seems to be the leader in performance even if you’re not getting as
much storage space but the fact is that both hosting companies are very capable.
Because YMMV I thought I’d point out a comment I received the other day. The
commenter made mention that depending on the architecture, four 5$ droplets from
DigitalOcean could in fact outperform a single 20$ Linode. I’m still trying to
wrap my head around how I could actually test that, one thought is setting up a
cluster of webservers on DigitalOcean and using ab
to check the performance
against the single Linode (comment below if you have any ideas). Personally, I
still like doing the apples-to-apples comparison just because most people just
getting into a VPS are going to be starting out with a single server anyway.
Totally superficial, but +5 to DigitalOcean for
commenting on one of my previous posts.
Definitely shows they care (even if they shot me down when I applied to be a
software engineer with them 😉
As always, if you found this article insightful and it’s helped you make a
decision as to which hosting company to go with, pretty please with whipped
cream and cherries on top, sign up with my referral link for
Linode
and/or DigitalOcean.
If you do sign up, tweet at me and/or leave me
some comment love below!