terug naar blogs

Performance Benchmarks

Afbeelding voor Performance Benchmarks
avatar van Danny
auteur
Danny
auteur
avatar van Danny
Danny
Performance Benchmark
5 september 2022 leestijd 10-15 minuten

Elke hosting partij zegt de beste performance te bieden maar welke hosting partij is dan echt de snelste? De meeste hosting partijen gebruiken een leverancier/infrastructuur beheerder voor de hardware waar zij op hosten. Digital Ocean, Google Cloud, AWS, zijn een van de meest bekende leveranciers in Nederland. Ook wij kunnen managed servers uitrollen bij deze leveranciers. Toch kiest vrijwel iedere klant voor onze eigen infrastructuur omdat websites hierdoor een stuk sneller worden. In deze blog tonen wij het verschil.

Inhoudsopgave

Wat gaan we meten?

WordPress

Voor deze benchmark hebben we gekozen voor een WordPress installatie. De reden hiervoor is het marktaandeel van het CMS. De meeste website worden tegenwoordig met WordPress gemaakt. We hebben daarnaast gekozen om hier een webshop van te maken middels WooCommerce en hierbij het populaire thema Storefront gebruikt. Er is daarbij één enkel product toegevoegd en enkele plugins zoals Yoast, Mailpoet en Jetpack. Op deze manier is het nog steeds een vrij kale WordPress installatie maar het stelt ons instaat om een bestelling in een webshop te simuleren.

+-------------------------+--------+--------+---------+
| name                    | status | update | version |
+-------------------------+--------+--------+---------+
| akismet                 | active | none   | 5.0     |
| google-listings-and-ads | active | none   | 2.1.0   |
| jetpack                 | active | none   | 11.2    |
| mailpoet                | active | none   | 3.95.1  |
| price-table-block       | active | none   | 1.2.1   |
| woocommerce             | active | none   | 6.8.2   |
| woocommerce-payments    | active | none   | 4.6.0   |
| woocommerce-services    | active | none   | 1.26.3  |
| wpbenchmark             | active | none   | 1.3.1   |
| wordpress-seo           | active | none   | 19.6    |
+-------------------------+--------+--------+---------+

+-----------------+----------+-----------+---------+
| name            | status   | update    | version |
+-----------------+----------+-----------+---------+
| storefront      | active   | none      | 4.1.1   |
| twentytwenty    | inactive | none      | 2.0     |
| twentytwentyone | inactive | none      | 1.6     |
| twentytwentytwo | inactive | none      | 1.2     |
+-----------------+----------+-----------+---------+

Four of a kind

Er zijn vervolgens vier websites opgezet bij de verschillende leveranciers;

*Het kan zijn dat deze servers zijn opgeruimd afhankelijk van wanneer je dit leest.

Specificaties

Vanwege de verschillende specificaties die de leveranciers aanbieden was het niet mogelijk de servers exact gelijk te krijgen. Wij hebben daarom gekozen om zelf de kleinste server te gebruiken. De andere leveranciers hebben minimaal dezelfde of meer resources. We hebben iedere server voorzien van dezelfde software en versies om de benchmark zo betrouwbaar mogelijk te maken. De servers hebben de volgende specificaties.

Caching

Voor deze benchmark wordt er geen caching gebruikt. De reden hiervoor is dat we servers van leveranciers testen en zij deze niet leveren met een standaard caching. Een hosting partij zal de server voorzien van caching zoals Redis, Varnish, Litespeed, etc. Dit verbeterd uiteraard de performance van de website en verlicht de druk op de server maar in de kern blijft de server zelf het belangrijkste performance aspect. Een website kan namelijk wel functioneren zonder caching maar niet zonder server. Er zijn daarnaast ook scenario’s waarbij caching niet gebruikt kan worden en de volledige druk op de server komt te liggen. Bijvoorbeeld bij het afreken proces in een webshop of het werken in de back-end door developers. Benchmarken zonder caching is daarom relevanter dan met.

Hoe gaan we meten?

Het meten van performance is ook weer een breed begrip wat op verschillende manieren gemeten wordt afhankelijk van wat je precies wilt weten. Iedere applicatie/website is anders en als hosting partij hebben wij hier weinig invloed op. In deze benchmark gaan we daarom de server performance meten. Er zijn drie verschillende tools die we gaan gebruiken om de server performance te meten.

WordPress Hosting Benchmark Tool

Dit is een plugin die gratis op iedere WordPress website geinstalleert kan worden. De plugin gebruikt een standaard data set om enkele bewerkingen uit te voeren om vervolgens te snelheid hiervan te meten. Het voordeel van deze plugin is dat de data set gestandaardiseerd is waardoor deze test ook heel makkelijk op je eigen website gedaan kan worden ter vergelijking. Deze test kijkt naar CPU snelheid, memory bandwith en disk snelheid. We hebben daarbij caching buiten beschouwing gelaten omdat dit niet draait op de servers.

GTMetrix – Google Pagespeed

De meesten eindklanten gebruiken zelf het liefst Google Pagespeed om de performance van de website te meten. Dit is logisch omdat Google nou eenmaal een grote autoriteit is op het gebied van vindbaarheid. Wat men niet realiseert is dat Pagespeed anders kijkt naar de performance van een website dan een hosting partij. Zij kijken namelijk naar de performance van je applicatie en de manier waarop dit wordt zichtbaar wordt gemaakt (Webvitals). Dit heeft weinig te maken met de performance van de server waardoor de resultaten niet heel relevant zijn voor onze benchmark. GTMetrix, daar in tegen, maakt in zijn performance analyse ook gebruik van Pagespeed en laat daarnaast andere relevante data zien zoals een waterval van de verzoeken en de Total Load Time. Voor deze benchmark is daarom gekozen om alleen GTMetrix te gebruiken.

Loader

Loader is een online tool die je kan gebruiken om de laadsnelheid van pagina’s te meten door bezoekers te simuleren. Je stelt een vooraf gekozen route in welke vervolgens door een X aantal bezoekers wordt gesimuleerd. Op deze manier wordt het mogelijk om te zien hoeveel bezoekers de servers aan kan per minuut voordat de server het niet meer kan afhandelen. Voor deze benchmark hebben wij gekozen om 120 bezoekers per minuut te simuleren die ieder één GET request en één POST requests uitvoeren. Een GET request is een standaard request dat alleen de website ophaalt, bijvoorbeeld wanneer iemand een pagina bezoekt. Deze requests zijn het minst zwaar voor een server. Een POST request is een verzoek waarbij data wordt opgehaald of verstuurd. Dit type verzoek wordt meestal gebruikt wanneer men een actie uitvoert op de website, zoals het plaatsen van een bestelling of het versturen van een contactformulier. Met andere woorden we testen 120 bezoekers per minuut die ieder de homepage bezoeken en vervolgens een actie uitvoeren.

Resultaten

WordPress Hosting Benchmark Tool

Van links naar rechts; “Rootnet, Digital Ocean, AWS, Google Cloud”

WHBT Resultaten Rootnet
WHBT Resultaten Digital Ocean
WHBT Resultaten AWS
WHBT Resultaten Google Cloud

GTMetrix – Google Pagespeed

Op de eerste afbeelding van links naar rechts en op de tweede afbeelding van boven naar onder;
“Rootnet, Digital Ocean, AWS, Google Cloud”

GTMetrix Resultaten Overzicht
GTMetrix Snelheid Visualisatie

Loader

Van boven naar onder; “Rootnet, Digital Ocean, AWS en Google Cloud”

Analyse

WordPress Performance Benchmark Tool

De resultaten van de benchmark spreken redelijk voor zich. Onze server scoort gemiddeld hoger dan de andere leveranciers op alle aspecten. Vooral op het lezen en schrijven naar de database zit een aanzienlijk verschil. Dit is desondanks het feit dat de servers van Digital Ocean, AWS en Google meer resources (CPU/RAM) hebben dan de Rootnet server. De reden hiervoor is dat onze hardware sterker is. Een voorbeeld hiervan zijn de CPU’s. Onze CPU’s draaien tussen 3.5Ghz en 4Ghz, Digital Ocean draait op 2.3Ghz, AWS en Google Cloud beiden op 2.2Ghz. Wij gebruiken daarnaast een van de snelste Raid SSD combinatie als disk. Hierdoor worden bewerkingen door onze server sneller afgehandeld dan bij de andere. Kortom, zelfs met minder resources halen wij meer rekenkracht uit onze machines.

GTMetrix

Wat opvalt bij de GTMetrix resultaten is dat deze in het overzicht na genoeg gelijk zijn. Ieder krijgt op een paar milliseconde na dezelfde score. Qua content zijn de websites gelijk aan elkaar. Waardoor een GTMetrix score of Pagespeed score nagenoeg gelijk is. Er wordt hier immers hetzelfde gemeten, de performance van de content (Webvitals). Wanneer we vervolgens verder kijken naar de laadtijden blijkt hier toch een aanzienlijk verschil in te zitten. De totale laadtijd bij Rootnet zit op 0.7 seconden. Digital Ocean doet er 1.0 seconden over, AWS zit op 0.8 seconden en Google Cloud op 0.9 seconden. Het overstappen naar een andere host betekent dus niet per se een verbetering van je Pagespeed score (Webvitals) maar tegelijkertijd kan je website op een andere host wel sneller draaien.

Loader

De groene lijn staat voor het aantal actieve gebruikers. De blauwe lijn is de response tijd van de server. Wat opvalt is dat bij de Rootnet server er een contante horizontale groene lijn te zien is. Iedere seconde worden de gebruikers netjes verwerkt waardoor er nooit meer dan 2 gebruikers actief zijn. Bij de andere servers zijn er op moment 4 of 3 gebruikers actief. Dit wil zeggen dat het verzoek van de eerste twee gebruikers niet was afgehandeld voordat het verzoek van de volgende twee erbij kwam. De Digital Ocean server had constant 4 actieve gebruikers op één moment na. AWS had het sporadisch lastig en Google Cloud wist het af te bouwen nadat de helft van de tijd verstreken was. De gemiddelde response tijd spreekt dan ook boekdelen. Rootnet scoort hier 580ms, Digital Ocean 1220ms, AWS 891ms en Google Cloud heeft gemiddeld 1036ms nodig voor een verzoek.

Samenvatting

Deze benchmark is gedaan onder vier verschillende leveranciers; Digital Ocean, AWS, Google Cloud en Rootnet. We hebben bij iedere leverancier een server afgenomen met vrijwel gelijke specificaties (CPU/RAM). We hebben onszelf daarbij de minste resources gegeven omdat wij de test uitvoeren (en we vrij zeker van onszelf waren). Vervolgens hebben wij op iedere server dezelfde OS en software geïnstalleerd. Als laatste is op iedere server dezelfde WP installatie en content geïmporteerd.

Er zijn drie tools gebruikt om de performance te meten; WordPress Performance Benchmark Tool, GTMetrix en Loader. Alle drie zijn tools van derden en zijn voor iedereen vrij om zelf te gebruiken. Er is daarbij concreet gemeten op CPU snelheid, memory bandwith, disk snelheid, totale laadtijd en average response tijd.

Op alle vlakken komt Rootnet daarbij als nummer één uit de bus. Google Cloud en AWS zitten dicht bij elkaar. AWS lijkt hier net iets beter te zijn en scoort beter op de totale laadtijd en average response tijd dan Google Cloud. Digital Ocean kan de concurrentie niet bij benen eindigt bij alle onderdelen als laatste.

Conclusie

Hoewel wij de andere leveranciers een voorsprong hebben gegeven door zelf een server met minder resources te gebruiken, wisten wij van te voren dat onze hardware beter was dan dat je bij de andere leveranciers standaard afneemt. Bijvoorbeeld de kwaliteit van de CPU’s of SSD. Dit merk je, zoals we gemeten hebben, bij het lezen en schrijven op de disk of naar de database, dan wel hoe goed de server verzoeken kan verwerken. Een ander element, wat vaak vergeten wordt, is het overboeken van resources. Dit betekent dat een leverancier dezelfde CPU’s en schijfruimte meerdere keren verkoopt. Op drukke momenten kan je dan toch last van je buren omdat er niet voldoende resources op de fysieke machine aanwezig zijn desondanks je eigen resources hoort te hebben. Bij Rootnet doen wij dit niet waardoor je feitelijk spreekt van dedicated resources. Tel je dit bij elkaar op dan zijn onze servers logischerwijs sneller dan bij andere leveranciers. Het lijkt daarom bijna op appels met peren vergelijken maar feitelijk gebruiken de meeste hosting partijen precies deze servers, met deze hardware, waardoor de benchmark een goed beeld geeft van het performance verschil tussen ons en deze leveranciers.

Bonus

Bij een bakker die zijn eigen brood beoordeelt stel je natuurlijk altijd de nodige vragen. Hoe objectief was deze benchmark nu echt? Hoe zouden de resultaten eruit zien met een grote website en een volle database? Test het zelf met onze gratis trial server en vergelijk je eigen hosting partij met ons!