Oh dear, what a long title is this! Have you ever wondered which VPS would be a good performing choice? For example, how does Linode vs DigitalOcean compare? And what about DigitalOcean vs Vultr?
If you have read some of my posts or reviews before, you know that I’m obsessed with speed and performance.
Now the benchmarks from vpsbenchmarks.com give a great overview of the raw performance of VPSes for many cloud providers.
But what about a real-life scenario. For example, how well do these VPSes handle WordPress? I tested up to a dozen of cloud providers on actual loading performance with an exactly similar WordPress installation. In this post, I describe the performance of the best five providers in a similar price range.
But before jumping to the results, let’s just briefly introduce each provider that is discussed in this benchmark.
Linode is a cloud provider founded in 2003, serving over 800.000 customers with VPSes based on Linux in 11 worldwide locations, such as Toronto, Fremont, Dallas, Atlanta, Newark, London, Frankfurt, Mumbai, Singapore, Sydney and Tokyo. They were among the first companies to start offering computers in the cloud. Notable features compared to other providers are DDoS Protections and high stability as indicated by many satisfied customers.
Nex to Linode, Digital Ocean is one of the common cloud providers focusing on easily deploying apps on their cloud infrastructure and is very popular among developers. Digital Ocean is based in New York, Cambridge (Massachusetts) and Bangalore and operates data centres in 8 locations (New York, San Fransico, Amsterdam, London, Frankfurt, Toronto and Bangalore.
Vultr is a the newest kid of the block, founded in 2014 focusing on easy of use and performance. Vultr has an excellent global availability by providing 17 data centers in New Jersey, Chicago, Dallas, Seattle, Los Angeles, Atlanta, Miami, Silicon Valley, Amsterdam, London, Frankfurt, Sydney, Toronto, Paris, Tokyo, Seoul and Singapore.
Upcloud is a relatively young, European provider, with a focus on superior cloud hosting with a 100% uptime guarantee and fast servers. UpCloud is founded in 2021 and based in Helsinki, Finland and operates in 11 data centers around the world (Amsterdam, Chicago, Frankfurt, Helsinki, New York, London, Madri, Singapore and Warshaw).
Hetzner is a professional web hosting provider with datacenters operating in Germany and Finland, founded in 1997 and one of the more famous inexpensive providers. They excel in providing inexpensive cloud servers, user-friendly control panels, hosting powered by sustainable energy and strict security and admission policies. Other notable features are DDoS protection and the possibility to register domains.
All providers have similar starting packages from $5 monthly, for which you rent a VPS with 1 core, 1 GB of memory and usually 1TB of traffic bandwidth. Packages scale up accordingly. The exception is Hetzner with a starting price of $4,59 for 2 cores, 2GB of memory, 40GB of disk space and 20TB of traffic.
You may want to know why AWS, Azure or GCE is not taken into account. While they can provide good performance, their pricing is much higher than the above platforms.
It’s time! Let’s see what the actual results of the test are and how all providers compare. In the test, the following benchmarks were used:
- Loader.io for testing concurrent users, while response times are below the 2 seconds mark (if you like to read more about testing platforms such as Loader.io, there is a great read here).
- Pingdom, GTMetrix and WebPageTest.org for testing loading speeds.
- Sucuri TTFB for testing the Time to the First Byte.
- The WordPress Performance Test plugin for application benchmarks.
All tests were performed on 1GB/1C servers (including the High-Frequency offering of Vultr, indicated with HF), except for Hetzner which was a 2C/2GB server. For setting up WordPress, the GridPane control panel was used. Prices indicated in the tests include the GridPane monthly price of $50.
You can use the below dropdown menu to select specific benchmarks and load a chart, or see the data below per category.
Maximum Concurrent Users (cached)
The following chart displays the maximum concurrent users each provider could handle with caching turned on (caching is a technology to drastically increase performance). The test fails if the response time is above 2 seconds.
A concurrent user is defined by one user, firing one request each second. Thus, this number also indicates the number of requests the server could handle per second.
Surprisingly, Hetzner is leading the pack, followed by Upcloud and the High-Frequency Servers from Vultr. This doesn’t come as a surprise, because Hetzner is providing the double amount of cores and ram for similar pricing.
Average Response Times
Another interesting feature is the average response time during the loadtest.
Digital Ocean and Linode scored solid here, but could obviously handle less concurrent users. That may also result in a lower average response time.
While Hetzner and Upcloud were able to cope with much more users, they did it with a slower average response time before things crashed down to response times of 2 seconds. In other words, Hetzner and Upcloud could handle more users before crashing, but at a higher average response.
Vultr High Frequency is actually doing pretty well on both ends.
Maximum Concurrent Users (uncached)
These are the maximum amount of concurrent users servers can handle per second when caching is turned off. Again, the test fails if the response time of the server is above 2 seconds.
As you can see, caching has a huge impact on performance. Hetzner lead the packs, but was utilizing 2 CPU cores (averaging 7 concurrent users per core). Vultr High Frequency is also doing very well for one core, followed by Upcloud with 8 concurrent users. The others lag behind.
This test is very important, because it gives insight in the real performance of a server (and not so much how good caching technology works)
Average Loading Times
The following table displays the average loading times for the various benchmarks tested.
|Average Loading Time WebPageTest (s) (lower is better)||3.59 - GridPane + Vultr 1C/1GB ($205 Monthly)3.56 - GridPane + Vultr HF 1C/1GB ($206 Monthly)3.46 - GridPane + Digital Ocean 1C/1GB ($205 Monthly)3.38 - GridPane + Linode 1C/1GB ($205 Monthly)3.89 - GridPane + Hetzner 2C/2GB ($203.49 Monthly)3.71 - GridPane + Upcloud 1C/1GB ($205.05 Monthly)|
|Average Loading Time GTMetrix (s) (lower is better)||2.80 - GridPane + Vultr 1C/1GB ($205 Monthly)3.60 - GridPane + Vultr HF 1C/1GB ($206 Monthly)3.40 - GridPane + Digital Ocean 1C/1GB ($205 Monthly)3.95 - GridPane + Linode 1C/1GB ($205 Monthly)4.45 - GridPane + Hetzner 2C/2GB ($203.49 Monthly)3.9 - GridPane + Upcloud 1C/1GB ($205.05 Monthly)|
|Average Loading Time Pingdom (s) (lower is better)||0.49 - GridPane + Vultr 1C/1GB ($205 Monthly)0.40 - GridPane + Vultr HF 1C/1GB ($206 Monthly)0.50 - GridPane + Digital Ocean 1C/1GB ($205 Monthly)0.53 - GridPane + Linode 1C/1GB ($205 Monthly)0.50 - GridPane + Hetzner 2C/2GB ($203.49 Monthly)0.46 - GridPane + Upcloud 1C/1GB ($205.05 Monthly)|
|Average Uncached Loading Time Pingdom (s) (lower is better)||0.65 - GridPane + Vultr 1C/1GB ($205 Monthly)0.57 - GridPane + Vultr HF 1C/1GB ($206 Monthly)0.84 - GridPane + Digital Ocean 1C/1GB ($205 Monthly)0.66 - GridPane + Linode 1C/1GB ($205 Monthly)0.64 - GridPane + Hetzner 2C/2GB ($203.49 Monthly)0.60 - GridPane + Upcloud 1C/1GB ($205.05 Monthly)|
Usually, I find this test the least interesting because it also says a lot about the application and not only the server. Nevertheless, we can see that:
- Linode is leading for WebPageTest, closely followed by Digital Ocean.
- In GTMetrix, the regular Vultr plan is leading followed by Digital Ocean.
- Finally, for Pingdom, Vultr High Frequency and Upcloud are the fastest.
Type to the first byte
The following chart displays the average time to the first byte (TTFB) from Frankfurt:
All providers have good TTFBs, but the TTFB for Upcloud is insane, it’s probably very close to the testing server of Upcloud.
WordPress Performance Test: Queries per second
The WordPress Performance test is an artificial benchmark, showing a server score and the amount of MySQL queries in WordPress a server can handle per second.
The Vultr High Frequency server is again setting a record, followed by Hetzner and Upcloud.
WordPress Performance Test: Server Score
The following chart displays the server score (lower is better) for each provider. The server score tests various operations on a server which constitutes the score.
Upcloud is again doing surprisingly well here, closely followed by the High-Frequency offering of Vultr.
Initial Comments on providers
Below are some of my comments on how various providers compare.
Linode vs DigitalOcean
So, what is the conclusion of the Linode vs DigitalOcean fight?
- In the cached concurrent user test, Digital Ocean surpassed Linode with 1000 users against 900 concurrent users for Linode Both Linode and Digital Ocean had similar response times in this test (98ms versus 96ms).
- In the uncached test, Linode and Digital Ocean score equal (5 concurrent users).
- However, in the TTFB test, Linode has a better value with 47ms over 64ms for Digital Ocean.
- In the WordPress Performance Test for Queries, Linode and DigitalOcean were very close with respectively 258 and 262 queries per second
- In the WordPress Performance Test for Server Operations, Digital Ocean crushed Linode, with a score of 0.703 versus 1.135 for Linode (lower is better in this case).
The winner: Digital Ocean
Linode vs Vultr
Let’s see what the results for Linode vs Vultr (regular server) are:
- Vultr’s normal server was outpaced by Linode in the test of cached concurrent users (800 against 900 concurrent users) and had a better average response time (96ms against 150ms)
- In the uncached test, Vultr surpassed Linode by 20% with 6 concurrent users (against 5 for Linode)
- In the TTFB test, Vultr had a better score of 29ms against Linodes 47ms.
- In the WordPress Performance Test for Queries, Linode was surpassed by Vultr with 258 against 309 queries per second.
- In the WordPress Performance Test for Server Operations, Linode scored a dramatic low with 1.135 against 0.582 for Vultr (lower is better).
The winner: Vultr
Digital Ocean vs Vultr
In these battles, we can’t skip Digital Ocean vs Vultr:
- Digital Ocean trumps Vultr in the test for concurrent cached users, with a score of 1000 concurrent users against Vultrs 800, also having a better average response time of 98ms (for DO) against 150ms (for Vultr).
- In the uncached test, Vultr beats Digital Ocean with 6 against 5 concurrent users.
- However, in the TTFB test, Vultr has a better value with 29ms over 64ms for Digital Ocean.
- In the WordPress Performance Test for Queries, Vultr beats DigitalOcean with 309 against 262 queries per second
- Finally, in the WordPress Performance Test for Server Operations, Digital Ocean is crushed by Vultr, with a score of 0.582 (for Vultr) versus 1.135 (for Linode) (lower is better in this case).
Upcloud vs Vultr High Frequency
Another very interesting one is Upcloud vs Vultr High Frequency, both two packages that boast on performance.
- Upcloud was a beast in the concurrent users tests, handling 1300 users per second against Vultr HFs 1100.
- In the uncached user test, Upcloud could handle 8 users versus Vultr HFs 11 concurrent users.
- In the TTFB test, Upcloud dramatically outpaced Vultr with 4ms against 46ms (for Vultr High-Frequency).
- In the WordPress Performance Test for Queries, Upcloud stood barenaked against Vultr with a score of 403 queries per second against Vultrs monstreous 787 queries.
- In the WordPress Performance Test for Server Operations, Upcloud took the lead with a score of 0.389, versus 0.415 for Vultr HF.
The winner: Vultr High Frequency (though 20% more expensive)
Upcloud vs Hetzner
At last, the battle of two European providers: Upcloud vs Hetzner. Hetzner does surprisingly well, especially since you only throw about $4 dollars a month at them.
- Upcloud is doing great in the concurrent users tests, handling 1300 users per second but no match against Hetzners 1900 users. However, Hetzners average response times for this test were 352ms, more as twice as Upclouds 156ms.
- In the uncached user test, Hetzner handled 14 users, against Upclouds 8 users. However, Hetzners server had 2 cores.
- In the TTFB test, it was already clear Upcloud is doing insane with a value of 4ms against Hetzners 35ms.
- In the WordPress Performance Test for Queries, Upcloud and Hetzner were in a similar range, with 403 and 484 queries per second respectively.
- In the WordPress Performance Test for Server Operations, Hetzner was greatly lagging behind with a score of 0.816 against Upclouds 0.389.
The winner: Hetzner, but on price/performance
About the test
All tests were performed with GridPane, one of the best control panels for hosting WordPress on VPSes and other types of servers. For the testing, we loaded up the shop demo of Enfold, a bloated WordPress theme from ThemeForest. The typical example of an average WordPress site.
Subsequently, the server location was always Frankfurt or as close as possible to Frankfurt (in the case of Hetzner) with Ubuntu 18.04 as OS. Earlier in this article, I also described that I used entry-level servers for testing, in the $3.49 to $6 a month price range)
The conclusion: Linode vs DigitalOcean vs Vultr (and the rest).
We’ve come to the end of an exciting series of testing and an epic showdown of Linode vs DigitalOcean vs Vultr vs Upcloud vs Hetzner. So what is our conclusion?
- Undoubtedly, Hetzner is providing the best value for money, but only has data centres in Germany and Finland. Thus, only fit for Europe (you do want servers as close as to the visitors of your servers).
- If you need access to more server locations, Vultr High Frequency and Upcloud can handle the most concurrent visitors (before they become slower).
- Digital Ocean and Linode have the best response times before they will crash.
- Linode is known for its reliability but is, in general, not the fastest.
- Digital Ocean is in the middle bracket. However, it’s one of the easiest platforms to deploy apps with pre-configured droplets.
Signing up at a provider?
For the various cloud providers, you can get up to $100 of free credits if you sign up through below links. That’s worth a big server!
- Get $100 of one month credits at Vultr for free
- Get $100 of 60 days credits for Digital Ocean for free
- Get $20 of free credits at Hetzner
- Get $25 of free credits at Upcloud
- Get Linode (no free credits)
The above links are affiliate links, which also helps me to continue testing providers and bring some bread on the table but doesn’t cost you anything extra. Thanks for your support!
What are your experiences with the above cloud providers? Feel free to leave any comment below.