It’s been nearly 2 years since my original $10 Showdown post. In
that time both Linode and DigitalOcean have launched
new datacenters and made other improvements to their infrastructures. One of the
most notable improvements is Linode’s migration from XEN to KVM. Let’s see how
they stack up at the ten dollar price point!
Linode | DigitalOcean | |
---|---|---|
Memory | 1GB | 1GB |
Processor | 1 core | 1 core |
SSD Storage | 24GB | 30GB |
Transfer | 2TB | 2TB |
Bandwidth Overage | $0.02/GB | $0.02/GB |
Network In | 40Gbit | 1Gbit |
Network Out | 125Mbit | 1Gbit |
Price | $10/month | $10/month |
$0.015/hour | $0.015/hour |
DigitalOcean is still winning in the storage and network out departments. It
seems Linode has adjusted their bandwidth overage pricing and is now more in
line with DigitalOcean’s pricing. I have included both hourly and monthly
pricing as both companies offer it now.
Preparation
For this comparison, I spun up brand new ten dollars instances on Linode
(Newark, NJ) and DigitalOcean (New York 2) running Ubuntu 14.04 LTS x64. I then ran
(and timed) an update and upgrade and installed some software that I used for
the benchmarking below.
sudo apt-get update
Linode | DigitalOcean | |
---|---|---|
real | 0m9.843s | 0m10.622s |
user | 0m8.877s | 0m9.974s |
sys | 0m0.787s | 0m0.421s |
Not much of a difference here. What’s interesting is that Linode deploys with
Ubuntu 14.04.1 LTS whereas DigitalOcean ships with 14.04.3 LTS. I suppose for
fetching the package list, there’s not much difference between minor versions.
Where it gets interesting is when I upgraded the boxes.
sudo apt-get upgrade -y
Linode | DigitalOcean | |
---|---|---|
real | 0m47.545s | 0m23.516s |
user | 0m18.993s | 0m13.179s |
sys | 0m7.397s | 0m6.992s |
DigitalOcean took nearly half as long to upgrade. Obviously this data could be
thrown out considering Linode’s older release of Ubuntu required more packages
to be upgraded.
sudo apt-get install sysbench mysql-server -y
I timed this one but since MySQL kept prompting to set the root password, I
didn’t see the need in including the stats. They both took around 19 seconds but
the numbers were skewed based on my own reaction time.
After all of that, I rebooted both systems and got down to the business of
running benchmarks!
CPU
sysbench --test=cpu run
Linode | DigitalOcean | |
---|---|---|
Number of Events | 10,000 | 10,000 |
Execution Time | 12.4834s | 17.0185s |
Min. Request | 1.24ms | 1.38ms |
Avg. Request | 1.25ms | 1.70ms |
Max. Request | 1.67ms | 3.44ms |
Linode’s CPU out performs DigitalOcean’s in every way.
Memory (read)
sysbench --test=memory run
Linode | DigitalOcean | |
---|---|---|
Number of Events | 104,857,600 | 104,857,600 |
Execution Time | 46.8098s | 102.3185s |
Min. Request | 0.00ms | 0.00ms |
Avg. Request | 0.00ms | 0.00ms |
Max. Request | 0.38ms | 0.67ms |
MB/sec | 2187.58 MB/sec | 1000.80 MB/sec |
Reading from memory was twice as fast on Linode as it was on DigitalOcean.
Memory (write)
sysbench --test=memory --memory-oper=write run
Linode | DigitalOcean | |
---|---|---|
Number of Events | 104,857,600 | 104,857,600 |
Execution Time | 46.8006s | 125.8300s |
Min. Request | 0.00ms | 0.00ms |
Avg. Request | 0.00ms | 0.00ms |
Max. Request | 0.29ms | 2.44ms |
MB/sec | 2188.01 MB/sec | 813.80 MB/sec |
Writing to memory had similar results. DigitalOcean’s writes were slower than
their reads while Linode actually was close to the same.
File I/O
sysbench --test=fileio prepare
Linode | DigitalOcean | |
---|---|---|
real | 0m3.294s | 0m12.723s |
user | 0m0.020s | 0m0.014s |
sys | 0m1.973s | 0m8.192s |
sysbench --test=fileio --file-test-mode=rndrw run
Linode | DigitalOcean | |
---|---|---|
Number of Events | 10,000 | 10,000 |
Execution Time | 1.4986s | 2.5595s |
Min. Request | 0.00ms | 0.00ms |
Avg. Request | 0.08ms | 0.13ms |
Max. Request | 7.34ms | 11.83ms |
Requests/sec | 6672.84 Requests/sec | 3906.99 Requests/sec |
sysbench --test=fileio cleanup
Linode | DigitalOcean | |
---|---|---|
real | 0m0.113s | 0m0.130s |
user | 0m0.000s | 0m0.000s |
sys | 0m0.110s | 0m0.130s |
Linode was able to perform more request per second in a shorter amount of time
than DigitalOcean. Clean up was about the same, but preparing the files was also
faster on Linode.
OLTP with MySQL
mysql -uroot -e "CREATE DATABASE sbtest;"
Linode | DigitalOcean | |
---|---|---|
real | 0m0.009s | 0m0.042s |
user | 0m0.003s | 0m0.013s |
sys | 0m0.000s | 0m0.000s |
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root prepare
Linode | DigitalOcean | |
---|---|---|
real | 0m8.140s | 0m18.305s |
user | 0m0.193s | 0m0.316s |
sys | 0m0.023s | 0m0.030s |
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root run
Linode | DigitalOcean | |
---|---|---|
Number of Events | 10,000 | 10,000 |
Execution Time | 26.5913s | 51.9672s |
Min. Request | 1.83ms | 2.52ms |
Avg. Request | 2.65ms | 5.19ms |
Max. Request | 24.85ms | 68.70ms |
Read/write Requests/sec | 7145.20 per sec. | 3656.15 per sec. |
sysbench --test=oltp --oltp-table-size=1000000 --mysql-user=root cleanup
Linode | DigitalOcean | |
---|---|---|
real | 0m0.132s | 0m0.225s |
user | 0m0.003s | 0m0.008s |
sys | 0m0.003s | 0m0.011s |
Similar to the file I/O, preparing data took longer on DigitalOcean but this
time the cleanup took nearly twice as long as Linode. Linode wins out for
database requests.
Backups
DigitalOcean has since added a backup option for their droplets for only 20% the
price of the droplet (so $2 for the $10 droplet size). Backups are performed
weekly and you have the last 4 weeks of backups available. Linode has a similar
offering but is priced a bit higher at $2.50.
Conclusion
Congruent with my previous comparisons, Linode’s latest KVM offering out
performs DigitalOcean every step of the way at the ten dollar price point. Even
still, based on the number of referrals I have with each company, it seems that
most people that read my blog end up going with DigitalOcean.
Why would they do that if Linode performs better? Perhaps it’s because
DigitalOcean has a $5 a month tier which is sufficient enough for most people’s
needs. Or could it be because DigitalOcean offers a $10 credit for new sign ups?
Amendment: Dave Roesch, Director of Marketing for Linode reached out
to let me know that Linode does have a promo code (LINODE10) that gives new
signups a $10 credit on their account. It’s also worth pointing out that Linode
staff has always been very interactive with me on Twitter. I like that kind of
stuff.
That being said, if you found this article helpful and are ready to sign up,
please sign up using my referral link for Linode and/or
DigitalOcean. Remember you can get a $10 credit with both
DigitalOcean (automatically) AND Linode (using promo code LINODE 10)!
Comment below or tweet at me if you end up signing up!