HEADS-UP: A ton has changed since this post was originally published!
Why not check out the latest comparison?

I mentioned the in my last Linode vs. Digital Ocean post that I would be doing a performance comparison of the two in the near future and here it is! I used sysbench with some pretty basic settings to compare a 2GB server from both hosting companies. Apples to apples, both plans weigh in at 20$ a month and are pretty comparable when looking at what you get for the money. Both servers are running Ubuntu 14.04 LTS (64-bit) and were brand new servers (no upgrades applied). The Linode server was configured with 512MB of RAM and the Digital Ocean server with none (as configuring a swap partition is not part of their setup interface).

Before I started, I did install sysbench and mysql-server:

sudo apt-get install sysbench mysql-server

CPU

sysbench --test=cpu run
Linode Digital Ocean
Number of Events 10000 10000
Execution Time 11.7520s 14.6590s
Min. Request 1.16ms 1.32ms
Avg. Request 1.18ms 1.47ms
Max. Request 1.80ms 2.92ms

Memory (Read)

sysbench --test=memory run
Linode Digital Ocean
Number of Events 104857600 104857600
Execution Time 316.8781s 286.5839s
Min. Request 0.00ms 0.00ms
Avg. Request 0.00ms 0.00ms
Max. Request 1.18ms 1.07ms
MB/sec 241.71 265.55

Memory (Write)

sysbench --test=memory --memory-oper=write run
Linode Digital Ocean
Number of Events 104857600 104857600
Execution Time 327.8409s 303.7926s
Min. Request 0.00ms 0.00ms
Avg. Request 0.00ms 0.00ms
Max. Request 0.90ms 5.38ms
MB/sec 235.96 254.30

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
Linode Digital Ocean
Number of Events 10000 10000
Execution Time 0.1041s 0.1583s
Min. Request 0.01ms 0.01ms
Avg. Request 0.01ms 0.02ms
Max. Request 0.06ms 0.21ms
Requests/sec 7144.83 3503.19

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
Linode Digital Ocean
Number of Events 10000 10000
Execution Time 29.5509s 57.0191s
Min. Request 2.21ms 2.97ms
Avg. Request 2.96ms 5.70ms
Max. Request 87.60ms 1003.54ms
Read/write Requests/sec 6417.08 3326.50

Conclusion

Obviously YMMV when running the same tests (hence providing the commands) but from where Iā€™m sitting, Linode performs considerably better in nearly every category. Digital Ocean fared better in both reading and writing from memory but at the end of the day, you will most likely be leveraging all aspects of the server and not just RAM. Digital Ocean still wins out when you need an inexpensive server (as their plans start at 5$) but Iā€™m not sure that I would rely on them when attempting to scale up your infrastructure.

As always, if you are interested in signing up for either of these companies, please please please sign up with my referral link for Linode and/or DigitalOcean.





Did you enjoy this post?

Cool if I slip into your inbox with more?
Full posts, 1-2 times per week: