This is my largest cloud KVM VPS server benchmark comparison I have ever done across 13x VPS servers from 5 different KVM VPS web hosting cloud providers, Upcloud, DigitalOcean, Linode, Vultr and Hetzner. VPS server web hosting providers now have an abundant choice of cpu processors and SSD/NVMe mix for disk storage layers to build their VPS host node servers from which gives VPS server end users a lot of choices when it comes to picking the right VPS server for their web hosting needs. The below KVM VPS server benchmark comparison results hope to shed some light on how these VPS server hardware mixes compare across different VPS web hosting cloud providers as not all KVM VPS servers are created equal To properly view the tabulated results, you may need to open the images in a new browser window - just too many VPS servers

This comparison benchmark writeup consists of an accumulation of over 60+ hours of testing and work ! If you like my benchmark comparison write up, please think about a donation or signing up via respective affiliate links to support Centmin Mod Benchmarking Budget Assistance Don't have any $$$ to spare, then share this writeup on your own social media channels, Twitter, Facebook, Medium, Reddit - spread the word and/or disable your adblockers when viewing Centmin Mod site/forums

Linode has a wide variety of cpu models on offer from past user experience they have reportedly used in order of oldest to newest cpus, Intel Xeon E5-2680v2, Xeon E5-2680v3, Xeon E5-2680v4, Xeon E5-2697v4, Xeon Gold 6148, AMD EPYC 7451, AMD EPYC 7501. So tested their dedicated cpu KVM VPS servers on 3 different cpu models. Kind of disappointing to see Linode throwing in the very very old Intel Xeon E5-2680v2 IvyBridge cpu into Linode dedicated cpu line up, seems out of place performance wise right now.

Linode standard VPS offered up an AMD EPYC 7501 cpu and from my past AMD EPYC benchmarking experience, it's well known that default CentOS 7 3.10 Kernels are too old to take full advantage of AMD EPYC cpus and that Linux 4.15+ Kernels or newer are needed. Luckily, Linode also offers their own custom Linux 4.x and 5.x Kernels that users can switch to. So I tested standard Linode VPS with AMD EPYC 7501 with default CentOS 7 3.10 and custom Linode 5.15 Kernels for a proper comparison.

Running installnbench2.sh

All VPS servers will run CentOS 7.6 64bit latest after a yum update and server reboot to ensure all VPS servers are on the same page in terms of updates and Linux Kernel updates for Meltdown/Spectre variant and MDS/Zombieload vulnerability patch fixes which affect performance.

Code (Text):

yum -y update && reboot

Then running installnbench2.sh script in a screen session so SSH disconnections do not abort the benchmark tests.

The install times are highly variable as part of the time is downloading source tarballs or YUM package downloads and installs so depends on the speed of the respective YUM mirrors the system picks up to download from as well as location of the VPS server geographically to the downloads. Downloads account for between 15-33% of the total install time. The rest is source compilation for Nginx, PHP-FPM, PHP extensions, Memcached server, CSF Firewall and other installed items via the Centmin Mod auto installer. Ultimately, comes down to cpu processor, disk performance and cpu clock speed for source compilation parts.

Centmin Mod's installer records and logs a breakdown of each of these factors so you can see where the install time differs between VPS web hosting providers. Think of the Centmin Mod installer as a mini all-in-1 benchmark itself testing the overall performance of the server.

Notes:

The Centmin Mod installer times pretty much reflected the same performance obtained from at least the first 3 places in the below outlined benchmarks where Centmin Mod LEMP install times from fastest to slowest were, 1st place Vultr High Frequency VPS at 744.53s, 2nd place Upcloud at 852.91s and 3rd place Vultr std computer VPS at 856.55s. The other VPS servers wrestled with each other though DigitalOcean standard droplet did reflect in that it was slowest for Centmin Mod install times at 2929.92s and did end up the slowest in most of the below benchmarks results. Centmin Mod installer as a mini all-in-1 benchmark itself is usually fairly accurate for me when determining if a server is a good performing one or not

Seems DigitalOcean curl installer YUM times had a hiccup for the General Purpose droplet taking 3x to 10x times longer to run. But if you look at the Total Centmin Mod Install Time metric, it was 4th fastest.

DigitalOcean standard droplet was the slowest out of all VPS providers for Centmin Mod install time taking 2929 seconds which is 2x to 3x times longer than other VPS providers.

Vultr's High Frequency KVM VPS was fastest as expected due to Nginx/PHP-FPM source compilations favouring high clocked cpus. Upcloud was 2nd fastest followed by Vultr standard computer VPS in 3rd place.

For brevity sake, I will be only comparing the higher concurrency HTTP/2 HTTPS load tests with 300 concurrent users and 6,000 requests for the following SSL ciphers for both RSA 2048bit & ECDSA 256 bit SSL certificates.

On averages across the 4 configurations, for Nginx HTTP/2 HTTPS benchmarks, Vultr High Frequency VPS was fastest at 9,002 req/s followed by Vultr standard compute at 7,769 req/s and 3rd place was Upcloud at 7,202 req/s.

Linode dedicated cpus weren't any faster than Linode standard VPS and they along with Hetzner VPS and DigitalOcean CPU optimized and General Compute droplets formed the middle of the pack in terms of Nginx HTTP/S HTTPS performance.

DigitalOcean standard droplet again was the slowest of all VPS providers at less than 1/5th the performance of Vultr High Frequency VPS!

Centmin Mod Nginx optionally supports dual RSA/ECDSA SSL certificates via free Letsencrypt SSL certificate issuance. So that Centmin Mod Nginx can serve better performing ECDSA 256bit SSL certificates to web browsers than support it and fallback to standard RSA 2048bit SSL certificates for web browsers and clients which do not support ECDSA 256bit SSL. With that in mine if you focus on just Nginx HTTP/2 HTTPS ECDSA AES128 results (AES128 is priorities over AES256 in Nginx configuration), you can see that again Vultr High Frequency VPS came in 1st place, Upcloud came in 2nd place edging out Vultr standard compute VPS in 3rd place. 4th place went to DigitalOcean's General Purpose droplet.

zcat & pzcat Access Log Read Benchmarks

zcat and custom pzcat benchmarks test the systems speed at reading Nginx access log in compressed gzip format. zcat is standard command equivalent of cat command just it can read .tar.gz as is. For Centmin Mod 123.09beta01 installs, I also created a custom pzcat command based on multi-threaded pigz compression tool, which does what zcat does but in a multi-threaded manner. So these test results show how fast the VPS servers can read from a Nginx access log which is gzip compressed - a task that most system admins will need to do quickly when inspecting compressed log files.

Notes:

Fastest to read a gzip compressed Nginx access log was Vultr High Frequency VPS in 1st place, with Upcloud in 2nd place and DigitalOcean General Purpose in 3rd place and Vultr standard compute in 4th place.

Again DigitalOcean standard droplet was the slowest out of all the VPS providers at more than 3x times slower !

Redis 5.0.5 Server Benchmarks

Notes:

Huge variance in Redis server benchmark performance with the clear leaders being Vultr High Frequency, Upcloud and Vultr standard compute.

Linode dedicated cpu VPS were disappointing given the label name. If you look at the Geekbench memory scores you will understand why, seems Linode servers had the lowest memory bandwidth speeds out of all the VPS providers. Redis is memory based so relies on memory bandwidth speeds.

Again DigitalOcean standard droplet was slowest though despite higher memory bandwidth numbers than some of the Linode VPS servers.

Disk FIO Benchmarks

Testing disk random read/write performance

Notes:

In terms of overall random read + random write performance, Vultr High Frequency VPS was way faster than the rest due to faster NVMe SSD storage resulting in 1.6x times better random read and 1.7x times better random write performance than 2nd place Hetzner Dedicated vCPU VPS and 2x times better random read and 3x times better random write performance than 3rd place, Upcloud !

DigitalOcean's CPU optimized and General Purpose droplets had very fast random reads which were faster than 2nd place Hetzner Dedicated vCPU but had the lowest random write speeds of all VPS providers - in the low double digits. DigitalOcean General Purpose was the slowest at 12MB/s random write ! I assume the disk storage on that server was congested or had busy neighbours ? Definitely not what I'd expect from General Purpose labeled droplet that is 3x times the cost of average tested VPS at US$60/month ! The same poor performance in disk writes for DigitalOcean's three droplets tested also can be seen in the sysbench.sh file read/write sequential and random tests and in IOPing random disk I/O tests as well.

Linode's random read/write were consistently in the middle of the pack with random writes that were 3x to 20x times faster than DigitalOcean's 3 droplets tested.

Again DigitalOcean standard droplet was slowest for Geekbench Multi-Core scores at 2293.

As mentioned previously Linode VPS has the lowest GeekBench single and multi core memory scores out of all VPS providers.

For GeekBench single and multi core cryptography scores, all VPS providers with Intel Skylake/AMD EPYC or newer cpu models came out faster than older cpu models like the Intel Broadwell (DigitalOcean) or Intel Xeon E5-2680v2 IvyBridge (Linode) which is expected due to newer cpu models having way better cryptographic performance.

All these disk FIO random read/write tests are all done using file-io-mode=sync as opposed to async so will be slower than numbers you usually see (async vs sync).

For database performance, file-fsync performance is important and is why it was added to my sysbench.sh benchmark script. 1st place was Vultr High Frequency VPS with NVMe SSD storage had the highest sysbench file fsync performance at 47.03MB/s. 2nd place Linode dedicated cpu Intel Xeon Gold 6148 at 25.16MB/s, 3rd place went to Upcloud at 18.93MB/s, 4th place Linode dedicated cpu with Intel Xeon E5-2680v2 at 16.47MB/s, 5th place Vultr standard compute at 11.91MB/s, 6th Linode standard VPS with AMD EPYC 7501 with custom Linode 5.1.5 Kernel at 10.47. All these VPS servers had double digital sysbench file fsync performance. Surprisingly, the slowest sysbench file fsync performance came from the most expensive VPS, DigitalOcean General Purpose droplet at US$60/month only managed 2.03MB/s which is just a tad slower than Hetzner's default VPS at 2.78MB/s

For 2 threads sysbench file random reads, Hetzner dedicated vCPU at 109.02MB/s just edged out Upcloud at 108.67MB/s with 3rd place going to Vultr High Frequency VPS sporting NVMe SSD storage at 71.24MB/s and 4th place Hetzner standard VPS at 68.53MB/s. Every other VPS was at or below ~50MB/s mark with again DigitalOcean standard droplet being slowest at 23.07MB/s

For 2 threads sysbench file random writes, Vultr High Frequency VPS was fastest at 83.9MB/s, 2nd Vultr standard compute at 61.37MB/s, 3rd Upcloud at 51.18MB/s, 4th Linode dedicated cpu Intel Xeon Gold 6148 at 50.53MB/s. Every other VPS was at or below ~30MB/s mark with DigitalOcean CPU optimized and General Purpose droplets being slowest at 9.72MB/s and 6.40MB/s respectively.

VPS Network Bandwidth Tests

Testing network bandwidth speed test

Notes:

Network bandwidth speed tests depend on the VPS server's geographic location relative to the test download file so it's expected that US West Coast VPS would perform better on download file locations within the same region and vice versa for US East Coast VPS and Germany location for European download file locations.

Summary

The newly announced Vultr new High Frequency Compute VPSes seems to have changed the game in terms of performance, mixed with high cpu frequency at 3.80 Ghz with fast NVMe SSD storage this VPS server nearly takes out 1st place in the majority of the above benchmarks fighting with Upcloud VPS for 1st/2nd place sometimes and Upcloud and their own Vultr standard compute VPS for 2nd and 3rd place spots occasionally. Priced competitively for 2 cpu cores at US$24/month with more disk space than the average VPS provider at 128GB NVMe SSD storage, it's very easy to recommend this VPS server. Only available in their New Jersey datacenter though so if geographic location matters. However, it's a steep jump in price if you need 4 cpu cores with Vultr High Frequency VPS costing US$96/month which is more than Upcloud.com 4 cpu VPS at US$40/month - though Vultr gives 384GB disk and 16GB memory versus Upcloud 4 cpu VPS at 160GB disk and 8GB memory. However, Upcloud 6 cpu VPS has 320GB disk and 16GB memory for just US$80/month so that seems to be a better alternative than Vultr High Frequency 4 cpu VPS as you get an extra 2 cpu cores with Upcloud.

AMD EPYC 7501's value is in having more supported cpu cores at a more competitive price than Intel - so in bare metal dedicated server usage case it's great. However, for VPS server with AMD EPYC having same number of usable cpu cores as Intel, it looses the fight in terms of clock speed and IPC (instructions per clock). We'd have to wait for AMD EPYC Zen2 Rome and Ryzen 3 for better IPC and clock speed performance. I question the choice of throwing in aging Intel Xeon E5-2680v2 IvyBridge in dedicated cpu line up as performance is way behind AMD EPYC 7501 and their other reported Intel Xeon newer cpus available. I'd like to see Linode offer a new lineup with exclusive AMD EPYC cpus with more cpu cores at better pricing - i.e. High Core Count plans for 4 cpu, 8gb, 80gb at US$25-30/month and 6 cpu, 16GB, 160GB at US$50-60/month and 8 cpu, 32GB, 320GB at US$75-90/month

For Linode if you land on AMD EPYC cpu based VPS, make sure to use newer 4.15+ Linux Kernels like Linode's custom 5.1.5+ Linux Kernel for better performance. The same can be said for Intel cpus newer than Intel Broadwell i.e. Intel Skylake in general.

Hetzner VPSes provide an interesting mix for budget end standard VPS at 4.9 EURO/month which performance in the middle of the pack. While the Hetzner dedicated vCPU was able to hang with the best VPS providers for some benchmarks above. The big bonus is they have the largest bandwidth quota allowance at 20TB, which is 5x to 6x times more than other VPS server plans tested above.

DigitalOcean's 3 droplets seem to be under performing from what I usually have tested. It could be those VPS host nodes are congested ? Though typically I have seen DigitalOcean do have relatively slower disk writes than other VPS providers from past testing as well. It's disappointing to see the most expensive General Purpose droplet at 3x times the price US$60/month performing so poorly in some benchmarks and the standard droplet definitely took last place in most of the above benchmarks. Like Linode, DigitalOcean though has many varieties of cpu models on offer so what you get with a particular droplet even on the same plan can vary as seen here. So DigitalOcean and Linode users definitely need to spin up a few VPS servers to inspect the cpu model and performance of their servers before deciding on which to keep I'll be testing DigitalOcean more as I prep Centmin Mod LEMP stack for listing on DigitalOcean's 1-Click App Marketplace later on so keep an eye out for that

Vultr and Hetzner are the only 2 VPS providers that hides their actual cpu model so we don't know exactly what cpu model is on offer. Vultr has a history of switching cpu models on us without notice. Early Vultr promoted 3.0Ghz VPS years ago with 3.4-3.6Ghz VPS but then they were quietly switched to slower 2.4Ghz clocked VPSes. So who knows how long the new High Frequency VPS offerings will exist ? I'd grab them while you can

The most consistent cpu models offered seem to be from Upcloud right now. Upcloud, I have only seen Intel Xeon E5-2687w v3/v4 or Intel Xeon Gold 6136 Skylake on offer.