Om te weten wat je nodig hebt, is het belangrijk om te weten wat je nodig hebt. Gezien we een heel sterke focus hebben op WordPress, zullen we dat platform als voorbeeld nemen. Maar eigenlijk zijn de zaken die we aanhalen ook toepasbaar op Laravel, Drupal, Magento en iedere andere PHP app die je op ons platform draait.
CPU’s vs. vCPU’s #
Een CPU is een rekenunit op een processor. Traditioneel kunnen die één taak tegelijk aan. Dat noemen we een thread. Sinds de komst van Intel Xeon CPU’s, kunnen we 2 threads loslaten op één CPU. Daardoor verdubbeld dus hoeveelheid rekenwerk die je kunt verzetten. Zo’n thread kan een vCPU genoemd worden. In de praktijk wordt in hostingland de term CPU echter gebruikt voor een thread. Zo ook bij ons.
CPU en PHP #
PHP kan als programmeertaal maar één thread tegelijk gebruiken. Met andere woorden; PHP spreekt maar één CPU tegelijk aan op ons platform. De snelheid van een CPU bepaalt daarmee dus ook hoe snel een CPU code kan verwerken. Hoe hoger de snelheid van de CPU, hoe sneller jouw website vanuit de server naar de bezoeker kan worden verstuurd.
CPU en MySQL #
Wij gebruiken op ons platform MariaDB, een directe vervanger voor MySQL. MariaDB gebruikt één thread per connectie die wordt gemaakt met de database. Gebruik jij op één site meerdere databases, kun je op die manier multithreaden. Voor WordPress en vele andere CMS systemen is dit niet het geval. Hierdoor is ook hier de snelheid van een CPU dus bepalend voor hoe snel jouw site data ontvangt.
CPU en Sitesnelheid #
Je kunt dus stellen dat ieder bezoek aan jouw website maximaal twee threads benut. Dit is waarom we onze pakketten standaard met twee CPU’s uitrusten. Wij geloven dan ook niet in pakketten op basis van één enkele CPU.
Wil je meerdere bezoekers op exact hetzelfde moment kunnen helpen met jouw website, dan is het dus nodig om meerdere processors te kopen. Daar PHP en MySQL niet helemaal gelijktijdig de CPU belasten, is het prima om bij grotere aantallen CPU’s met oneven aantallen te werken.
Werkgeheugen (RAM) #
Wanneer een CPU complexe berekeningen doet, moet het, net als mensen, snel notities (code) maken. Bovendien slaat het veelgebruikte code graag wat langer op om zo sneller te kunnen werken. Dit doet een computer in haar werkgeheugen. Werkgeheugen noemen we RAM. Jouw website heeft dus een bepaalde hoeveelheid werkgeheugen nodig.
PHP en RAM #
PHP is gelimiteerd in de hoeveelheid geheugen die het maximaal kan benutten. Dit ligt al jaren vast op 2GB. Heeft jouw PHP app meer dan 2GB aan RAM nodig, dan moet je je afvragen of PHP de juiste oplossing is.
WordPress limiteert standaard haar geheugengebruik op 40MB. In de praktijk zien we dat websites doorgaans ergens tussen de 128MB en 256MB nodig hebben. We hebben een artikel geschreven over het optimaliseren van het geheugengebruik door WordPress.
Ongeacht welk hostingproduct je bij ons koopt, je mag altijd 2GB RAM benutten. Je kunt dus altijd PHP instellen voor maximaal gebruik. Het is mogelijk om meer dan 2GB aan te kopen. Stel dat jouw website 256MB per sessie nodig heeft, dan heb je slechts genoeg geheugen voor 8 bezoekers tegelijk. Verwacht je meer bezoekers, heb je dus een grotere geheugenpool in jouw account nodig. Daarom kun je meer geheugen bijkopen en is dat ook echt zinvol op een drukkere website.
Loopt de geheugendruk gelijk op met de druk op de CPU? Zeker niet. Het geheugen houdt data doorgaans langer bezet dan de CPU omdat het legen van het geheugen een apart proces is.
Dan is er nog de ‘klasse’ van het geheugen. De oudste servers die we hebben, draaien nog op DDR3. Dat is een prima snelheid in combinatie met de processor en de SSD. De 3GHz generatie draait op DDR4, wat al een heel stuk sneller is. Dat past ook beter bij de snellere processors en de snellere SSD’s. Onze snelste servers draaien op DDR5.
Opslag #
Een traditionele bottleneck in webhosting is het opslagmedium waar de data op staat. De goedkoopste opslag in webhosting is HDD ofwel hardeschijf opslag. De naald op een hardeschijf kan echter maar op één plek tegelijk zijn en moet mechanisch bewegen om data te lezen of te schrijven. Ook al heb je veel geheugen en een snelle CPU, kan een trage HDD alsnog een enorme bottleneck zijn op de server. Zeker wanneer deze ook nog defragmenteert.
In onze goedkoopste servers zitten SSD’s. Die heffen de vertraging van de mechanische bewegingen in een HDD op. Daarnaast zijn alle datalijntjes letterlijk korter, waardoor data sneller verplaatst.
In onze duurdere servers plaatsen we NVMe SSD’s. Dit zijn SSD’s op basis van 3D NAND technologie. Data wordt letterlijk gestapeld. Hierdoor neemt de hoeveelheid data op een enkele SSD toe. Bovendien worden er nieuwe controllers gebruikt die veel sneller data kunnen verplaatsen. Doordat de opslagchips individueel aangesproken worden, kunnen ook nog eens meerdere lees en schrijfprocessen tegelijk plaatsvinden.