$10 Showdown: Linode KVM vs. DigitalOcean

Josh Sherman
6 min read
VPS Showdown
HEADS-UP: A ton has changed since this post was originally published!
Why not check out the latest comparison?

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.


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!


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.


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.


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.


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!

Or if you’re feeling really generous, show off your favorite tech stack by picking up a shirt!

Join the Conversation

Good stuff? Want more?

Weekly emails about technology, development, and sometimes sauerkraut.

100% Fresh, Grade A Content, Never Spam.

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.

Currently Reading

Parasie Eve

Previous Reads

Buy Me a Coffee Become a Sponsor

Related Articles