PHP-Worker verarbeiten den PHP-Code einer Webseite. Dazu gehören der Aufbau von Seiten, die Bearbeitung von Hintergrundaufgaben, die Abfrage der Datenbank usw.

Man kann sich die PHP-Worker wie Angestellte in einem Laden vorstellen. Jeder Worker kann nur eine Anfrage auf einmal bearbeiten. Wenn es mehr Kunden als Angestellte gibt, müssen sich diese Kunden (Prozesse) anstellen und auf den nächsten Mitarbeiter warten, der ihre Anfrage bearbeiten kann.

PHP-Worker kommen vor allem dann ins Spiel, wenn eine Webseite die meisten Inhalte nicht zwischenspeichern muss oder kann. Je dynamischer eine Webseite ist, desto mehr PHP-Worker braucht sie wahrscheinlich. Für gecachte Inhalte werden keine PHP-Worker benötigt, sondern nur dann, wenn die Webseite die Datenbank abfragen muss, um Informationen zu erhalten oder zu ändern.

WordPress und PHP-Worker

Eine nicht zwischengespeicherte Anfrage auf einer WordPress-Webseite läuft normalerweise so ab:

  1. Ein Besucher besucht eine Seite oder führt eine Aktion auf einer Seite durch (z. B. etwas in den Warenkorb legen, ein Formular ausfüllen usw.).
  2. Der Webserver (hier bei Kinsta Nginx) empfängt diese Anfrage.
  3. Nginx leitet die Anfrage an PHP weiter.
  4. PHP fragt die MySQL-Datenbank ab und holt sich die benötigten Informationen oder nimmt die erforderlichen Aktualisierungen vor.
  5. PHP verwendet dann die PHP-Dateien deines Themes (und ggf. Plugin-Dateien), um eine HTML-Seite zu erstellen.
  6. PHP übergibt die gerenderte HTML-Seite zurück an den Webserver.
  7. Die Seite wird an den Besucher ausgeliefert.

In dem oben beschriebenen Prozess ist Schritt 4 der zeit- und ressourcenintensivste (CPU und RAM). Eine gut optimierte Webseite mit effizientem PHP-Code und Datenbankabfragen wird diesen Schritt relativ schnell abarbeiten.

Schlecht geschriebener oder nicht optimierter PHP-Code und/oder viele ineffiziente Datenbankabfragen werden dagegen viel länger brauchen, um Schritt 4 zu bewältigen. Anfragen, die länger brauchen, um bearbeitet zu werden, beanspruchen die PHP-Worker für längere Zeiträume.

Schätzung der Anzahl der benötigten PHP-Worker

Wie viele Worker eine Webseite benötigt, hängt von mehreren Faktoren ab, z. B. davon, wie dynamisch die Webseite ist, wie optimiert der Code der Webseite ist (wie schnell Anfragen bearbeitet werden können) und wie hoch der Traffic auf der Webseite ist. Eine optimierte Webseite bearbeitet die Anfragen schnell und gibt die PHP-Worker für die nächste Anfrage in der Warteschlange frei.

Dynamische Webseiten wie E-Commerce-Shops, Foren, Lernseiten und Mitgliederseiten benötigen in der Regel mehr PHP-Worker als statische, broschürenartige Webseiten. Je höher die Auslastung einer Webseite ist, desto mehr PHP-Worker braucht sie in der Regel auch.

PHP-Worker, CPU und RAM

Wenn du PHP-Worker hinzufügst, musst du auch die CPU- und RAM-Ressourcen berücksichtigen. Wenn du die Anzahl der PHP-Worker erhöhst, der Server aber nicht über genügend CPU und RAM verfügt, um diese Worker zu unterstützen, führt dies zu einem Engpass, da die Anfragen nicht effizient bearbeitet werden können.

Bei Kinsta sind unsere maßgeschneiderten LXD-Container mit ausreichend CPU- und RAM-Ressourcen ausgestattet. Durch den Einsatz von rechenoptimierten virtuellen C2-Maschinen, die mit den schnellsten CPUs der Google Cloud ausgestattet sind, sorgen wir außerdem dafür, dass die PHP-Worker deiner Webseite effizienter arbeiten. Unsere skalierbare Infrastruktur stellt sicher, dass die PHP-Worker deiner WordPress-Webseite über genügend CPU-Ressourcen verfügen, um mit Höchstleistung zu arbeiten.

Identifizierung von Leistungsproblemen bei PHP-Workern

Wenn sich zu viele Anfragen in der Warteschlange stapeln, sei es aufgrund eines großen Zustroms von Anfragen, lang laufender Prozesse oder einer Kombination aus beidem, kann es zu Leistungsproblemen kommen, die zu 502 oder 504 Fehlern führen können.

Mit Tools wie Kinsta APM und dem Plugin Query Monitor kannst du Leistungsprobleme und langsame Abfragen erkennen. Wir empfehlen außerdem, mit einem qualifizierten Leistungsexperten zusammenzuarbeiten, um Probleme zu diagnostizieren.

Klicke auf die Schaltfläche Kinsta APM aktivieren, um es in MyKinsta zu aktivieren.
Klicke auf die Schaltfläche Kinsta APM aktivieren, um es in MyKinsta zu aktivieren.

Das PHP Worker Limit Diagramm in MyKinsta Analytics zeigt dir, wie oft die maximale Anzahl der zugewiesenen Worker auf deiner Seite erreicht wurde. So kannst du feststellen, ob deine Webseite ihre PHP-Worker kontinuierlich auslastet, und dir zeigen, wie ein Update auf eine neuere Version der PHP-Engine helfen könnte.

PHP Worker Limit
PHP Worker Limit

Mit der Cache-Analyse in MyKinsta Analytics kannst du die Gesamtzahl der Cache-Anfragen und die wichtigsten Cache-Umgehungen auf deiner Seite einsehen.

Cache - Cache-Komponententabelle
Cache – Cache-Komponententabelle
Cache - Top Cache Umgehungen
Cache – Top Cache Umgehungen

Reduzieren und Optimieren der PHP Worker-Nutzung

Caching

Seiten-Caching

Caching ist dein bester Freund, wenn es darum geht, deine Seite zu optimieren und die Anzahl der benötigten PHP-Worker zu reduzieren. Denke daran, dass PHP-Worker nicht für gecachte Inhalte benötigt werden, also cache alles, was du kannst. Bei Kinsta kümmern wir uns um das Seiten-Caching für dich; alle Webseiten nutzen das FastCGI-Cache-Modul von Nginx für superschnelle Leistung.

Objekt-Caching

Wenn du deiner Datenbank einen persistenten Objekt-Cache wie Redis vorschaltest, kannst du die Leistung steigern und den Bedarf an PHP-Workern verringern. Ohne Objekt-Caching werden MySQL-Datenbankabfragen bei jeder Anfrage ausgeführt, auch wenn es sich um dieselbe Anfrage und dieselben Ergebnisse handelt.

Redis speichert die Ergebnisse von Datenbankabfragen im RAM, so dass PHP diese Ergebnisse abrufen kann, ohne die Abfrage erneut ausführen zu müssen. Durch den Wegfall der sich wiederholenden Datenbankabfragen können PHP-Worker Ressourcen sparen und Anfragen effizienter bearbeiten.

In unseren Premium-Add-ons erfährst du mehr über das Hinzufügen von Redis-Cache zu deiner Webseite.

Code-Optimierung

Sorge dafür, dass der Code deiner Webseite so effizient wie möglich ist. Das gilt für benutzerdefinierten Code, Theme-Code und Plugin-Code. Wenn du dir nicht sicher bist, empfehlen wir dir, einen Entwickler zu bitten, den Code deiner Webseite zu überprüfen.

Benutzerdefinierter Code

Wenn deine Webseite benutzerdefinierte Codeschnipsel in Plugins oder deinem Theme enthält, vergewissere dich, dass sie wirklich notwendig und gut geschrieben sind.

Plugins

Sieh dir die auf deiner Webseite verwendeten Plugins genau an und vergewissere dich, dass sie wirklich benötigt werden, keine Funktionen duplizieren und die beste Option für die jeweilige Aufgabe sind. Wenn ein Plugin nicht mit der neuesten Version von WordPress und PHP kompatibel ist, ist es vielleicht an der Zeit, andere Optionen in Betracht zu ziehen. Wenn du Plugins auf deiner Webseite hast, die nicht genutzt werden, solltest du diese entfernen.

Theme

Verwende ein schlankes und leistungsfähiges Theme. Vermeide Themes, die Funktionen enthalten, die am besten durch separate Plugins implementiert werden (z. B. SEO, Suchfilter, benutzerdefinierte Felder, Bildslider/Diashows usw.) oder die für deine Webseite nicht benötigt werden.

PHP aktualisieren

Verwende die neueste PHP-Version, um die Leistung zu steigern. PHP-Benchmarks zeigen, dass jede PHP-Version schneller ist als die vorherige.

Aktiviere das Kinsta CDN

Die Aktivierung des CDN von Kinsta bietet einen weiteren Effizienz- und Optimierungsschub für deine Seite. Das CDN von Kinsta ist unser leistungsstarkes HTTP/3 CDN von Cloudflare, das wir dir ohne zusätzliche Kosten bieten. Wenn du es aktivierst, kann deine Webseite statische Inhalte von Orten auf der ganzen Welt ausliefern.

Konsultiere einen Leistungsexperten

Wenn du dich mit der Optimierung deiner Webseite auskennst, ist dies ein optionaler Schritt. Ein Experte kann dir helfen, alle Aspekte deiner Webseite zu analysieren, Engpässe zu erkennen und Lösungen zu implementieren.