WordPress Tuning: Plesk vServer Nginx

Lesezeit: 3 Minuten

Umzug von Ubuntu 14 auf Ubuntu 18 per Plesk

Ich habe die letzten Tage meine Webseiten von meinem “alten” Vserver, einem Ubuntu 14.x, auf meinen neuen, einem Ubuntu 18.x (Plesk auf vServer mit Nginx), umgezogen. Dank Plesk ging das recht schmerzfrei. Da mir die Stabilität und die Performance jeder Webseite extrem wichtig ist, habe ich als erstes diverse Tests gefahren, primär mit GTmetrix und Pingdom – natürlich zusätzlich zu den rein subjektiven Tests mit diversen Browsern. Und irgendwie kam mir die Seite träge vor. Als ob erstmal nichts passiert, bevor sich die Seite aufbaut. Das subjektive Gefühl wurde von den o. g. Testseiten bestätigt:

Performance WAIT-Zeit

Nach dem Umzug ist die Seite langsam

Jede einzelne Zeile ist quasi der Download eines Webseitenobjekts. Ab der 2. Zeile sieht alles sehr gut aus- die Objekte werden schnell nacheinander ohne lange Wartezeit geladen. Aber die erste Zeile ist schräg: Hier wird rund 1,3 Sekunden lange … nichts gemacht. Quasi. Also aus Besuchersicht. Der gelbe Balken bedeutet “WAIT” und entspricht sozusagen der Wartezeit des Browsers auf den Server, ohne dass etwas passiert. Das ist einfach unschön. Woran kann es liegen?

Meist liegt diese “WAIT”-Zeit auf Seiten des Servers. Dieser tut irgendwas, ohne aber produktiv irgendwas zum Client zu schicken. Jetzt ist natürlich klar, dass der Server eine gewisse Zeit benötigt, um die Seite aufzubereiten, der PHP-Interpreter muss die Seite zusammenbauen und es müssen Datenbankabfragen durchgeführt werden. Aber nun muss man realistisch sein, meine Seiten haben keine Tausende Aufrufe pro Minute. Also sollte da mehr rauskomme (also, weniger…).

Fehleranalyse und Lösung

Als erstes bin ich die üblichen Maßnahmen durchgegangen, absolut ohne Erfolg (was die WAIT-Zeit angeht). Dann habe ich angefangen, die Webserver Konfiguration im Detail anzuschauen. Alles wurde quasi 1:1 übernommen. Nach diversen Tests und vielem Suchen habe ich als nächstes die Webserver-Konfiguration geändert von Apache auf Nginx (nicht als Proxy sondern “only”):

plesk nginx-Einstellungen

Mit dieser Einstellung wird ab sofort alles direkt per Nginx ausgeliefert, Apache ist nicht mehr involviert. Ergebnis: Kaum messbare Verbesserung. Frustrierend- aber danach habe ich mir die PHP-Einstellungen angesehen. Und bin auf die PHP-FPM-Einstellungen gestoßen. Diese waren auf “on-demand” als Standard gestellt. Hört sich erstmal gut an. Aber “on-demand” kann auch den Nachteil haben, dass erst die Prozesse spawnen müssen, wenn sie benötigt werden- das kann eventuell Zeit kosten. Ich habe dann mit den Werten experimentiert und fahre aktuell die folgenden Einstellungen:

plesk php-fpm-einstellungen

Mit dieser Einstellung starten von Beginn an gleich mal 5 Prozesse und “warten”. Wenn eine Anfrage kommt, kann diese gleich bearbeitet werden, ohne erst einen Prozess zu starten (Wer die genaue Dokumentation für die Settings sucht: https://www.php.net/manual/en/install.fpm.configuration.php#pm.max-children) Ergebnis:

pingdom Performance

Wait-Zeit nur noch 20% vom vorherigen Wert, rund 200ms! Das ist eine Zeit, mit der man wirklich sehr gut leben kann, top. Offenbar ist der Overhead für das “on-demand”-Erstellen der nötigen PHP Worker-Prozesse recht hoch.

Problem hierbei: REWRITES laufen nicht mehr sauber!
–> Bester Weg aktuell der sauber funktioniert: Haken bei “Proxymodus” reinnehmen und bei den PHP-Einstellungen der Domäne “…von Nginx bedient” auswählen!

Fazit – besser mit Plesk vServer Nginx

Alles super kann man denken? Aber Achtung, einen Nachteil hat es:

Plesk vServer Nginx RAM

Korrekt, die RAM-Auslastung steigt natürlich MASSIV an und muss man im Auge behalten, wenigstens zu Beginn (Baselining). Ich sehe das so: Wenn ich 16GB RAM habe (und sie nicht anderweitig benötige!), dann kann ich davon auch einen Teil für pre-spawned Prozesse verheizen. Für meinen Fall ist diese Lösung bisher optimal- und das Wichtigste: Die Verbesserung ist auch spürbar als lebender Besucher- und nicht nur ein statistisch-messbares Ergebnis.

ps: Als Tipp kann ich nur spezialisierte WordPress-Hoster empfehlen, die Dir genau diese Thema abnehmen (wenn sie gut sind, RaidBoxes kannst Du z. B. hier kostenfrei testen*).

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

fünf × 2 =

Datenschutz
, Besitzer: (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.
Datenschutz
, Besitzer: (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.