Als het moment daar is om een hostingpakket uit te kiezen, is het van belang om een te kiezen die het best past bij de eisen van je WordPress-website. Als we als voorbeeld een e-commercewebsite nemen die 50.000 bezoekers per maand opvangt, dan is deze doorgaans veeleisender dan een blog met dezelfde hoeveelheid verkeer. Dit komt simpelweg door het feit dat veel e-commercewebsites dynamisch zijn en met veel niet-gecachete content en aanvragen te maken krijgen.

En dat is precies waar PHP-workers in de kijker verschijnen. Lees hieronder meer over wat PHP-workers zijn en hoe ze worden gebruikt om de verwerking van aanvragen op je site te versnellen.

Wat is een PHP-worker?

PHP-workers bepalen hoeveel gelijktijdige aanvragen je site op een bepaald moment kan verwerken. Simpel gezegd, elke niet-gecachete aanvraag voor je website wordt afgehandeld door een PHP-worker.

Als je site bijvoorbeeld 4 verzoeken ontvangt, allemaal op precies hetzelfde moment, en je site heeft 2 PHP-workers, dan worden twee van die aanvragen verwerkt terwijl de andere twee in de wachtrij moeten totdat de eerste twee geholpen zijn.

Als je site super geoptimaliseerd is of niet veel PHP-code bevat (bijv. door een complex thema of veel WordPress-plug-ins), dan wordt elke aanvraag vrijwel onmiddellijk afgewerkt. Zelfs in het voorbeeld met de 2 PHP-workers en 4 verzoeken zullen alle vier verzoeken heel snel worden afgehandeld.

Wij implementeren caching op serverniveau, dus verzoeken worden in het algemeen razendsnel vanuit de cache bediend. Voor sites waar bij sommige pagina’s de cache wordt overgeslagen of gemist, spelen PHP-workers een veel belangrijkere rol, omdat ze veel meer werk moeten leveren bij elk verzoek. Meestal zien we veel niet-gecachete verzoeken bij e-commerce- en community-sites. Daarom vereisen deze sites doorgaans extra PHP-workers, om ervoor te zorgen dat elk verzoek zonder vertraging wordt verwerkt en met succes wordt afgerond.

De consequentie van te weinig PHP-workers

When PHP workers are already busy on a site, they start to build up a queue. Once you’ve reached your limit of PHP workers, the queue starts to push out older requests which could result in 504 errors or incomplete requests. There are a lot of different things that could cause this, such as a slow uncached request from a plugin that ties up more of your PHP workers. In this case, additional PHP workers per site would help solve this problem, as they allow for multiple requests to execute simultaneously.

Wanneer PHP-workers bezig zijn terwijl nieuwe verzoeken binnenkomen, dan vormt zich een wachtrij. Zodra je je limiet aan PHP-workers hebt bereikt, dan zorgt de wachtrij ervoor dat oudere verzoeken worden afgestoten, wat kan leiden tot 504-foutmeldingen of onvolledige aanvragen. Er zijn veel verschillende zaken die dit kunnen veroorzaken, zoals een trage niet-gecachete aanvraag van een plug-in die ook een beroep doet op je PHP-workers. In dit geval zouden extra PHP-workers het probleem helpen oplossen, omdat ze het mogelijk maken om meer gelijktijdige aanvragen uit te voeren.

Hebben we het een beetje kunnen uitleggen? Zie elke PHP-worker als een ticketcontroleur in een stadion. De ticketcontroleur kan maar één persoon tegelijkertijd helpen. Als je meerdere controleurs in dienst neemt, kunnen meer mensen tegelijkertijd worden geholpen. Het probleem ontstaat wanneer mensen treuzelen, bijvoorbeeld door veel vragen te stellen (lees: langzame, niet-gecachete verzoeken), wat de andere mensen vertraagt.

Een ander veel voorkomende fout die we vaak tegengekomen bij sites met te weinig PHP-workers, zijn 502 Bad Gateway-foutmeldingen Deze verschillen van 504-foutmeldingen omdat deze foutmelding optreedt na een time-out van 60 seconden in de wachtrij van de PHP-workers.

Een schatting maken van het aantal PHP-workers

Elk hostingpakket van Kinsta bevat een bepaald aantal PHP-workers. Het aantal dat bij elk pakket hoort is gebaseerd op het verbruik dat we in de afgelopen jaren bij onze klanten hebben gemeten. Over het algemeen hebben sites met statische content – artikelen, statische pagina’s, blogartikelen – niet veel PHP-workers nodig.

4 PHP-workers zijn meestal genoeg voor grotere WordPress-sites. Dit kan echter per site verschillen, omdat elke site weer zijn eigen unieke combinatie heeft van externe plug-ins, query’s, dynamische inhoud en verhouding tussen gecachete en niet-gecachete responses. Dus vaak kan je stellen: hoe meer PHP-workers, hoe beter.

Grafiek PHP-workerlimiet

De PHP-workerlimietgrafiek in de MyKinsta Analytics laat je zien hoe vaak de PHP-engine in het logboek heeft gerapporteerd dat het de maximaal aantal toegewezen workers heeft bereikt. Dit kan je helpen te bepalen of je site vaak dit limiet bereikt, maar ook hoe het bijwerken naar een nieuwe PHP-versie hierop van invloed kan zijn.

PHP worker limiet

PHP worker limiet

Grafiek cache-analyse

Je kan de rapporten van de cache-analyse gebruiken om te bepalen hoeveel verzoeken momenteel vanuit de cache worden geleverd en hoeveel de cache overslaan. Ook kan je hier de top cache-bypass-verzoeken zien.

Top cache bypasses

Top cache bypasses

Als je vragen hebt over hoeveel PHP-workers je nodig hebt of als je denkt dat een gebrek aan PHP-workers fouten veroorzaakt op je website, open dan een ticket en ons supportteam zal je graag helpen.

20
Delen