I became a Linode user a long time ago. It was almost monopoly in that “Linode like” piece of VPS market. Then in 2011 DigitalOcean came along. As a very aggressive competitor, they offered the same amount of RAM and much more transfer for a quarter of the Linode price (at that time). So I migrated. I have always wanted to write a comparison of the duo. However, the price gap was so large it did not make sense at all.
But since then Linode doubled their RAM offering twice, tenfold increased their transfer allowance, and upgraded to modern hardware. Now Linode and DigitalOcean are at the same price mark. Plus Linode just added a $10 plan to their portfolio. It is a great time now to bring on some low end plan comparisons of these two providers.
Just before I write about, a new player in the field caught my eye. VULTR - it does seem to me like a very young DigitalOcean clone. Since benchmarks need to be run anyway, I decided to include two corresponding plans from them as well.
A very important aspect - support - is left out of this comparison. Because I did not use their supports enough to make any comments. Depending on my limited experiences, Linode and DigitalOcean both have awesome support. I have not used VULTR support.
- Company Backgrounds
- Per Dollar Value
- Payment Methods
- Real World Tasks
- Choices of Operations Systems
- Linode was found in 2003 (11 years old) and continues to be privately owned by its founder and employees. As their CEO stated "(Linode is) the only cloud hosting company built and owned 100% by developers". Their VPS use Xen exclusively.
- DigitalOcean was found in 2011 (3 years old) and is backed by venture capitalist firm Andreessen Horowitz. KVM is their choice of virtualisation technology.
- VULTR was found in 2014 (less than 1-year-old) and is a child company of Choopa, LLC. They also use KVM.
I picked all plans with 1GB RAM or less from the three providers. They are:
- Linode 1GB plan
- DigitalOcean 512MB plan
- DigitalOcean 1GB plan
- VULTR 768MB plan
- VULTR 1GB plan
Here is a brief summary of the players on field:
Per Dollar Value
Linode and DigitalOcean plans have the same memory to dollar ratio, while the two plans of VULTR give you 43% and 50% more respectively. Considering memory is the most important resource for VPS in many scenarios, I'd say that VULTR wins this round.
DigitalOcean wins on storage. However, all plans have more than enough storage for most use cases anyway. Large amount of data should be saved to external storage services like S3. This is not a crucial metrics.
VULTR 1GB plan gives you 43% more transfers per dollar than others. But the transfers allowance of their Tokyo and Sydney nodes is only ONE TENTH of normal plan. A huge gotcha.
Linode is credit card only while the other two providers also accept PayPal. The internet is a dangerous place nowadays. Linode was hacked once. So I tend to use PayPal whenever possible.
VULTR boasts its full-dozen locations around the world while Linode has half a dozen. DigitalOcean, claiming more locations are on the way, has only 4 at the moment. But their Singapore datacentre is unique among the 3 providers - just like VULTR's Sydney datacentre.
Disclaimer: VPS benchmarks are not consistent. They are partially depended on the neighbours (the other VPS nodes on the same host machine). VPS nodes from different datacentres of the same provider are not necessarily of the same underly hardware, either. So take the following results with a grain of salt and always run your own benchmark / stress test when needed.
- Linode node is from Dallas datacentre
- DigitalOcean nodes are from New York datacentre
- VULTR nodes are from Dallas datacentre
- All systems are Ubuntu Server 14.04 LTS
This is a surprise. I never expected Linode to be at the bottom. This is probably due to Linode's lower CPU frequency. Still weird result, comparing to other tests.
SysBench CPU Test
sysbench --test=cpu --cpu-max-prime=20000 run
DigitalOcean lost this round. If you look at the raw logs. DigitalOcean's maximum execution times are particularly bad.
SysBench I/O Test
sysbench --test=fileio --file-total-size=13G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
Linode won this one with their expensive, datacentre-grade SSDs. Test files are 13GB in size because the VULTR 768MB plan has only 15GB storage.
SysBench MySQL Test
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=foobar --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
With faster CPUs, VULTR plans won the MySQL test.
dd CPU Test
dd if=/dev/zero bs=1M count=1024 | md5sum
Raw result logs: dd CPU Test
dd I/O Test
dd if=/dev/zero of=test bs=64k count=128k conv=fdatasync
Raw result logs: dd I/O Test
Linode crushed its opponents. But DigitalOcean's results surprised me. Maybe because of "consumer grade" SSD and RAID 5? To be fair, I have seen much better results on DigitalOcean's SFO nodes before (close to VULTR's number in this test).
Real World Tasks
Enough of benchmarking. Let's do some real world tasks.
Compile MySQL 5.6.19 from source. Who finishes first?
Raw result logs: Compiling MySQL
The results are basically in line with the CPU benchmarks.
Stress Test 1
In this test, stock nginx, mysql, php5-fpm, and latest WordPress were installed. Then wrk was fired at the VPS nodes to see how they performed under a tiny DoS attack. (In the chart, grey means timed out requests.)
wrk -t12 -c100 -d60s http://ip.add.re.ss/wordpress/\?p\=1
Raw result logs: Stress Test Result 1
VULTR 1GB plan almost successfully handled all requests! That was very impressive. DigitalOcean plans lagged again.
Stress Test 2
Confluence is my wiki of choice. It is all good but one thing - very resource demanding, which actually makes it an ideal target to test against. However, only the three 1GB plan could participate in this round. Confluence would not run on anything with less than 1GB memory.
This time LoadImpact was used to simulate visitors from around the world. Let's see how many active visitors our VPS nodes could handle.
Result links: Stress Test Results 2
These tests indicated that our newcomer VULTR performed best. The good old Linode was the second. And my current provider DigitalOcean, well, didn't do as good. But performance, though important, is not everything. Other aspects need to be considered as well.
Linode provides 4 backup slots for each node. Three backup slots are executed and rotated automatically: a daily backup, a 2-7 days old backup, and an 8-14 day old backup. The fourth backup slot is available for on-demand backups. Backup is charged at 25% of the node price. That means an additional $2.5 / month for the 1GB plan.
DigitalOcean gives their users a more flexible backup mechanism. There are 5 automatic backup slots and you can manually make as many snapshots as you need. 20% of the node price is charged for backup service. The price for snapshots is $0.02 per GB of storage per month.
VULTR at this moment do not have an automatic backup service. To many this is a deal breaker. They do allow users to manually make snapshots of the nodes. But it is still in beta stage.
Scaling and Migration
With Linode, users can scale up or down a node by clicking a few buttons on the control panel. But migrating to another datacentre must be done by opening a support ticket. Though the response time is usually quite good, I still prefer self-helping.
Users can one-click resize nodes in DigitalOcean, too. However, there are some limits: firstly you can only scale up; secondly only the RAM and the CPU will be resized, the storage will stay the same. To migrate to another datacentre the user will have to make a snapshot and restore it.
VULTR allows users to one-click up scale nodes as well. Any other thing is done through making snapshots and restoring them. Snapshots can only be restored to equal or bigger disks, which again means scaling up only.
Choices of Operating Systems
Linode provides many latest Linux distributions and a few legacy versions. But 32bit systems are no longer in stock. So please beware: if your app has 32bit dependencies, it won't run on Linode.
DigitalOcean has fewer distributions to choose from (Ubuntu, Debian, CentOS and Fedora. Arch Linux will be deprecated). But each distribution has more versions. And 32bit systems are available.
Moreover, For their users convenience, DigitalOcean has a few stock "apps" can be deployed and used straight away.
VULTR's stock Linux systems are limited to Ubuntu, CentOS and Debian. However, they made it up by providing FreeBSD and - wait for it - Windows Server 2012 R2. Of course, the prices of Windows nodes are much higher. VULTR's 1GB Windows Server plan will cost a user $23 per month instead of $7 .
You may have noticed the "Custom" option in the screenshot above. That's right. VULTR allows users to upload their own ISO images and install operating systems from there. I am going to try OS X later :)
On the other hand, we can see that VULTR initialises nodes in a different way from Linode and DigitalOcean. Instead of "clone an image to the node", they do normal operating system installations. Users can actually open a console window and watch the operating system being installed.
Unfortunately, that also means deploying a VULTR node is much slower than the other 2 providers. It will take 5-10 minutes for a VULTR node to be ready while the waiting time of Linode and DigitalOcean are both around 1 minute.
There are some features all 3 providers share. Like console access, performance graphs etc.
Linode is the most feature rich provider among the three.
- Transfer Pool: All nodes under one Linode account share one transfer pool.
- Node Balancer: NodeBalancers are highly-available, managed, and cloud-based "load balancers as a service." Each NodeBalancer costs $20 / month.
- Longview: Longview is Linodes's Linux system statistics graphing service. It not only is able to monitor Linode VPS but also to monitor any other linux servers. The free version only saves 12 hours of performance history. The paid pro version is tiered by client numbers.
- DNS Manager is a comprehensive DNS management interface available within the Linode Manager that allows users to add DNS records for all of their domain names.
- Sub Accounts: Linode users can grant other people access to the Linode Manager by creating accounts and assigning permissions to restrict access to certain areas of the control panel.
- Rescue Mode: When a node's primary filesystem is corrupted, the user can boot the node into rescue mode and perform many system recovery and disk management tasks.
DigitalOcean has a DNS Manager and VULTR provides a startup script mechanism. Other than those, these two providers do not have many extra features.
Though only 3 years old, DigitalOcean has already gained a splendid reputation in developer communities. Their documents are the best I have ever seen among VPS providers. Linode has a nice and large document library as well. But it does not update as fast as DigitalOcean's. For example, I was not able to find many articles about Ubuntu 14.04 in Linode Library.
VULTR does not have any documents or tutorials.
VULTR has the highest performance to price ratio, has the most geographic choices, and supports custom operating systems. But it lacks automatic backup, has much longer node preparation time, and has few documents and community support. It is understandable though, since VULTR is still very young.
Linode used to allow every node access to 8 CPU cores. But they reduced the core numbers for lower end plans after the recent hardware refreshment. Still, apart from the weird Unix Bench test result, the newly added $10 plan performed not bad. It is also the best choice for I/O sensitive apps. Linode comes with loads of extra features and a rich API. With its 11 years history, it is the safe bet for production uses.
DigitalOcean used to have an edge over Linode on pricing but no longer. Their documents, community support and the $5 plan are the reasons I stay with them. Today they released a public beta version of API version 2. I like the constant surprises from DigitalOcean. The slightly lagging performance never bothered me. In fact, I would not have noticed the difference had I not run the benchmarks.
Thanks for reading. If you find this post helpful in some way, please consider using my referral links to register these services. We will both get credits.