PHP werknemers verwerken de PHP code van een site. Denk hierbij aan het bouwen van pagina’s, het verwerken van achtergrondtaken, het opvragen van de database, enz.

Een manier om over PHP workers te denken is als werknemers in een winkel. Elke worker kan slechts één verzoek tegelijk behandelen. Als er meer klanten zijn dan werknemers, moeten die klanten (processen) in de rij staan en wachten op de volgende beschikbare werknemer om hun verzoek te behandelen.

PHP werkers zijn pas echt belangrijk wanneer een site het grootste deel van de inhoud niet wil of niet kan cachen. Hoe dynamischer een website is, hoe meer PHP workers deze waarschijnlijk nodig heeft. Gecachete content cache vereist geen PHP-werknemers, ze zijn alleen nodig wanneer de site de database moet opvragen om informatie te verkrijgen of te wijzigen.

WordPress en PHP workers

Een ongecachet verzoek op een WordPress site gaat meestal als volgt:

  1. Een bezoeker bezoekt een pagina of voert een actie uit op een pagina (bijv. iets toevoegen aan een winkelwagen, een formulier indienen, enz.).
  2. De webserver (Nginx hier bij Kinsta) ontvangt dat verzoek.
  3. Nginx geeft het verzoek door aan PHP.
  4. PHP stuurt een query naar de MySQL database en krijgt de informatie die het nodig heeft of maakt eventuele updates die nodig zijn.
  5. PHP gebruikt vervolgens de PHP bestanden van je thema (en eventuele pluginbestanden indien van toepassing) om een HTML pagina te genereren.
  6. PHP geeft de gerenderde HTML pagina terug aan de webserver.
  7. De pagina wordt geleverd aan de bezoeker.

In het hierboven beschreven proces is stap 4 de meest tijd- en resource-intensieve (CPU en RAM). Een goed geoptimaliseerde site met efficiënte PHP code en databasequery’s zal die stap vrij snel verwerken.

Aan de andere kant zullen slecht geschreven of niet-geoptimaliseerde PHP-code en/of veel inefficiënte databasequery’s veel langer duren om door stap 4 te komen. Verzoeken die langer duren om te verwerken nemen meer PHP workers voor langere tijd in beslag.

Schatting van het aantal benodigde PHP workers

Hoeveel werknemers een site nodig heeft, hangt af van verschillende factoren, zoals: hoe dynamisch de site is, hoe geoptimaliseerd de code van de site is (hoe snel aanvragen kunnen worden verwerkt) en wat voor soort verkeer de site ontvangt. Een geoptimaliseerde site behandelt aanvragen snel, waardoor PHP workers vrij komen voor het volgende verzoek in de wachtrij.

Dynamische sites zoals e-commerce winkels, forums, educatieve sites en lidmaatschapssites hebben meestal meer PHP workers nodig dan meer statische, brochureachtige sites. Verder geldt: hoe drukker een site is, hoe meer PHP workers het meestal nodig zal hebben.

PHP workers, CPU en RAM

Bij het toevoegen van PHP workers moet rekening worden gehouden met CPU- en RAM resources. Als je PHP workers verhoogt, maar de server heeft niet genoeg CPU en RAM om die workers te ondersteunen, zal dit een knelpunt creëren omdat de verzoeken niet efficiënt worden afgehandeld.

Hier bij Kinsta zijn onze custom LXD containers geconfigureerd met veel CPU- en RAM resources. Bovendien helpen we de PHP workers van je site efficiënter te werken door gebruik te maken van compute-optimalised C2 virtuele machines die zijn uitgerust met de snelste CPU’s van Google Cloud. Onze schaalbare infrastructuur zorgt ervoor dat de PHP workers van je WordPress-site voldoende CPU resources hebben om op topprestaties te werken.

Identificeer prestatieproblemen met betrekking tot PHP workers

Als er te veel verzoeken in de wachtrij staan vanwege een grote instroom van verzoeken, langlopende processen of een combinatie van beide, kan de site prestatieproblemen ondervinden die kunnen leiden tot 502 of 504 fouten.

Met behulp van tools zoals Kinsta’s APM tool en de Query Monitor plugin kunt je prestatieproblemen en langzame query’s identificeren. We raden ook aan om samen te werken met een gekwalificeerde pperformance expert om problemen te diagnosticeren.

Klik op de knop APM inschakelen om deze in MyKinsta in te schakelen.
Klik op de knop APM inschakelen om deze in MyKinsta in te schakelen.

De PHP workerlimiet in MyKinsta analytics laat zien hoe vaak het maximum aantal toegewezen workers op je site is bereikt. Dit kan je helpen te bepalen of je site voortdurend gebruik maakt van de PHP workers en kan je daarnaast ook laten zien hoe het updaten naar een nieuwere PHP engineversie kan helpen.

PHP workerlimiet
PHP workerlimiet

De sectie voor cacheanalyse in MyKinsta Analytics kan worden gebruikt om de totale cacheverzoeken en belangrijkste cachebypasses van je site te bekijken.

Cache – cache component grafiek
Cache – cache component grafiek
Cache – top cache bypasses
Cache – top cache bypasses

Gebruik van PHP workers verminderen en optimaliseren

Caching

Paginacaching

Caching is je beste vriend als het gaat om het optimaliseren van je site en het verminderen van het aantal PHP workers dat nodig is. Vergeet niet dat PHP werkers niet nodig zijn voor gecachete content, dus cache alles wat je kunt. Bij Kinsta verzorgen we de paginacaching voor je; alle sites gebruiken de FastCGI cachemodule van Nginx voor supersnelle prestaties.

Objectcaching

Het toevoegen van een persistent object cache zoals Redis voor je database kan de prestaties verbeteren en de behoefte aan PHP workers verminderen. Zonder objectcaching worden MySQL-databasequery’s uitgevoerd voor elk verzoek, zelfs als het dezelfde query en resultaten zijn.

Redis slaat de resultaten van databasequery’s op in RAM, zodat PHP die resultaten kan gebruiken zonder de query opnieuw uit te voeren. Door de noodzaak van repetitieve databasequery’s te verwijderen, kunnen PHP workers resources besparen en verzoeken efficiënter uitvoeren.

Bekijk onze premium add-ons voor meer informatie over het toevoegen van Redis cache aan je site.

Code-optimalisatie

Zorg ervoor dat de code van je site is geoptimaliseerd, zodat deze zo efficiënt mogelijk is. Dit geldt voor aangepaste code, themacode en plugincode. Als je het niet zeker weet, raden we je aan een developer te vragen de code van je site te bekijken.

Custom code

Als je website aangepaste codefragmenten bevat in plugins of je thema, zorg er dan voor dat ze echt nodig en goed geschreven zijn.

Plugins

Kijk goed naar de plugins die op de site worden gebruikt en zorg ervoor dat ze echt nodig zijn, dupliceer geen features en zorg dat ze de beste optie zijn voor de behoefte die ze vervullen. Als plugins niet compatibel zijn met de nieuwste versie van WordPress en PHP, is het misschien tijd om andere opties te overwegen. Als je plugins op je site hebt die niet worden gebruikt, wordt het verwijderen ervan aanbevolen.

Thema

Gebruik een lichtgewicht thema dat zich richt op performance. Vermijd thema’s die functionaliteit bevatten die het beste kan worden geïmplementeerd via afzonderlijke plugins (bijv. SEO, zoekfilters, aangepaste velden, afbeeldingssliders/diavoorstellingen, enz.) of die niet nodig zijn voor je site.

Update PHP

Gebruik de nieuwste PHP versie voor snellere prestaties. PHP benchmarks laten zien dat elke PHP versie sneller is dan de vorige.

Schakel Kinsta’s CDN in

Het inschakelen van Kinsta’s CDN biedt een extra boost van efficiëntie en optimalisatie voor je site. Kinsta’s CDN is onze hoogwaardige HTTP/3 CDN, ondersteund door Cloudflare, die je zonder extra kosten ter beschikking wordt gesteld. Als dit is ingeschakeld, kan je site statische assets leveren van locaties van over de hele wereld.

Overleg met een prestatiedeskundige

Als je bekend bent met siteoptimalisatie, is dit een optionele stap. Een expert kan je helpen bij het analyseren van alle aspecten van je sites, het identificeren van knelpunten en het implementeren van oplossingen.