Linode recently announced the release of their own $5 instance. This new $5 instance boasts twice the amount memory than the same priced instance from Digital Ocean. I have never personally used Linode for any of my projects as I’ve always used Digital Ocean. I wanted to do a comparison of the $5 droplet from Digital Ocean against the new $5 instance from Linode.
I wanted to do a number of tests on both droplets. I wanted to see exactly how fast the droplets were on both Apache and Nginx web servers. I also wanted to see how well they scale. In this post, I do a number of comparisons, both real world examples, as well as Sysbench tests. Why both types of tests? I usually take Sysbench tests with a pinch of salt. A huge amount of factors can alter the outcome of these, so I wanted to do a load test using loader.io, too.
Here are some specifications of the two virtual machines to compare:
|1GB RAM||512MB RAM|
|1 CPU Core||1 CPU Core|
|20GB SSD||20GB SSD|
|1TB bandwidth||1TB bandwidth|
|40Gbps Network In||40Gbps Network In|
|1Gbps Network Out||1Gbps Network Out|
From the table above, the two companies’ pretty much offer the same specifications on their virtual machines. Linode offering twice the memory for the same cost. Lets take a deeper look of a few important details.
Here we can see that the Linode CPU’s are slightly more powerful. This should have a noticeable impact on how well the virtual machine copes on load. It definitely felt a little quicker when setting up the virtual machine.
After seeing that the Linode machine had a faster CPU, I wanted to do a basic Sysbench prime number test on the processor.
The Linode virtual machine was less than a second faster to complete this task. I thought the Linode virtual machine would have been noticeably quicker over the Digital Ocean droplet on this test. Nevertheless, Linode was better at this task.
SSD Disk Speed
I wanted to test how fast the SSD’s were on both virtual machines. This can have a noticeable impact in day to day usage so this was quite important for me.
Disk write speed
Disk read speed
Disk write speed
Disk read speed
On the disk SSD speed test, Linode came out on top. This time by a decent amount.
Testing MySQL performance can be tricky. In this instance, we’ll create a new database called test and add 1000000 rows of data. We’ll then perform a read test in the database.
After we’ve created the test database, we’ll create 1000000 rows of data.
We’ll perform a read test on our database
The same again with Linode
This one did surprise me. Seeing as the CPU and the SSD speed on Linode is faster, I would have expected Linode to come out on top with this one. Instead, Digital Ocean was able to perform quite a lot more read queries than the Linode virtual machine.
Bench test conclusions
On Sysbench testing alone, the Linode virtual machine didn’t stand out at all. I was expecting more as in theory, it is of higher specification than the Digital Ocean droplet.
Doing bench tests and speed comparisons of hardware is all well and good, but we know that it doesn’t necessarily point toward a faster website. I decided to do some testing between a two different web server configurations. I wanted to test both the overall website speed according to various website speed testing services, as well as how many concurrent users the server can handle. To test the website speed, I will be testing tools.pingdom.com and webpagespeedtest, testing from the closest server possible to the virtual server. In order to test for concurrent users, I will be using loader.io. Here I’ll be testing for 1 minute at the highest sustained users possible without receiving errors.
Here are the web server configurations I’ll be testing:
- Apache, PHP7 and MariaDB
- Nginx, PHP7 and MariaDB
I must note that I will be using the latest version of WordPress (4.7.2 at the time of writing this), the default Twenty Seventeen theme and no plugins, not even Hello Dolly or Akismet. Both web server setups will be using default configurations, no tweaks, no server side caching like fast-cgi or Varnish. Just very basic LEMP and LAMP stacks.
Each test was performed three times. All virtual machines are running the same version of WordPress, no plugins installed, just basic installations.
Linode Apache, PHP7.0, MariaDB
Digital Ocean, Apache, PHP7.0, MariaDB
Image to come
Linode Nginx, PHP7.0, MariaDB
Digital Ocean Nginx, PHP7.0, MariaDB
Image to come
I wanted to test each virtual machine under load using the different web servers. I am performing a 1 minute test on each setup. The test will have a sustained user count. I have tested to the highest amount of users before the server crashed.
Digital Ocean Apache
As you can see from the animation below, the Apache server on the Digital Ocean droplet was able to handle 60 concurrent users with an average load time of 1733ms.
The Linode virtual machine was able to cope with twice the amount of concurrent visitors, 120, without falling over. This was with an average load time of 1946ms.
No surprises here really. I’d be worried if a virtual machine with twice the amount of memory lost this one. Twice the amount of memory on the Linode machine so twice the amount of visitors. Yes, the average time is slower, but as there are twice the amount of concurrent visitors, I think this is acceptable.
Digital Ocean Nginx
Testing the Digital Ocean droplet with Nginx, I saw a 0.1% error rate where the backend failed to load. I was not able to see which error this was, but I suspect this is due to memory exhuastion on the small 512MB droplet causing the database to crash. I did have to manually restart the database service after this test. I was able to push the droplet to 135 clients with an average load time of 2273ms.
Again, I was surprised at the Linode virtual machine. The machine experienced a 0.3% error rate with 140 concurrent visitors. Other than that, the virtual machine was able to cope with 5 more concurrent visitors with a slightly quicker average load time of 2234ms.
Well, for me, the results of these tests are a surprise. I was expecting the Linode virtual machine to do much better than the Digital Ocean droplet. I was expecting the Linode virtual machine to wipe the floor with the Digital Ocean droplet with its more powerful CPU and larger memory allocation. The Linode machine was only marginally better than the Digital Ocean droplet when comparing Nginx webservers. I think if you are just starting out with your virtual machine experience, Linode is probably the way you want to go. They’re both the same price so why not go for the more powerful machine? But really, for me, I have no real reason to migrate sites from Digital Ocean to Linode as there is no real improvement in performance for me, despite boasting the larger memory allocation.
Have I missed anything out in these tests? Or anything you want me to elaborate more on? Let me know by commenting or emailing firstname.lastname@example.org