WPML

In den letzten Monaten hatten wir das Gefühl, dass unsere eigene Website – wpml.org – immer langsamer wird. Zuerst haben wir den radikalen Ansatz gewählt und ein Server-Upgrade durchgeführt. Als das nicht half, haben wir uns intensiv damit beschäftigt und das Problem genau analysiert. Das Ergebnis ist die heutige Version, die unsere CPU-Auslastung und Antwortzeit um 70 % reduziert hat.

Was wir über Performance-Analyse gelernt haben


Performance war uns schon immer sehr wichtig. Wir testen seit Jahren den Arbeitsspeicher, die Abfragen und die CPU-Zeit von WPML und verbessern diese mit jeder Version. Was wir in dieser Entwicklungsrunde gelernt haben, ist, dass statische Tests nicht immer die wahren Probleme aufdecken.

Die Methode, die wir bisher zum Testen der Performance verwendet haben, sah so aus:

  • Eine große Datenbank mit vielen Beiträgen, Postmeta, Kategorien und Benutzern erstellen
  • Eine Liste der „aufwendigeren“ Seiten erstellen
  • Diese mehrfach laden, die Ladezeit messen und ein Profiling durchführen

Dies zeigte uns, welche Frontend- und Admin-Seiten wir debuggen und optimieren müssen. Wir haben darauf geachtet, die Anzahl der Abfragen zu reduzieren, lange Abfragen zu vermeiden und effizienten PHP-Code zu schreiben.

Also, was fehlt?

WordPress und WPML sind etwas komplexer als „eine Seite anfordern und warten, bis sie geladen ist“. Alles läuft über die Datenbank, die eine gemeinsam genutzte Ressource ist. Eine Aktion, die Besucher A in der Datenbank ausführt, kann sich auf das Erlebnis von Besucher B auswirken.

Um diese Engpässe zu verstehen, haben wir ein Tool namens Appoptics auf unserer Live-Website installiert. Es ermöglichte uns zu messen, welche Funktionen und Abfragen Zeit beanspruchen, damit wir analysieren konnten, warum.

Die tatsächliche Performance-Verbesserung


Wir haben herausgefunden, dass eine scheinbar harmlose Operation in der String-Übersetzung einen erheblichen Ressourcenkonflikt mit einer häufigen Abfrage an die Options-Tabelle eines anderen Plugins verursachte. Wenn man diesen Aufruf nur 1 Million Mal ausführt, spürt man kein Problem. Wenn jedoch andere Seiten auf die Options-Tabelle zugreifen müssen, müssen sie warten, bis die Strings nicht mehr darauf zugreifen. Die Liste der ausstehenden Anfragen wächst, die Datenbank läuft über und das Chaos bricht aus.
Performance-Verbesserung für wpml.org

Wenn Sie sich das Diagramm ansehen, können Sie erkennen, dass der größte Teil der Serverleistung in die Datenbank floss (jene Tabelle, die ständig gesperrt und entsperrt wurde). Sie können wahrscheinlich erraten, zu welchem Zeitpunkt wir den Fix angewendet haben.

Aber ich habe andere Performance-Probleme, können Sie diese beheben?


Was wir gefunden haben, wird definitiv nicht nur wpml.org helfen, sondern vielen anderen stark frequentierten Websites, die WPML nutzen. Wenn Sie eine Website mit sehr geringer Auslastung haben, werden Sie diese Verbesserung kaum spüren. Sie betrifft nur Websites mit hoher Nebenläufigkeit und Benutzern, die viele verschiedene Dinge tun.

Es ist möglich, dass andere Websites andere Performance-Optimierungen nutzen können. Wir haben nun gelernt, dass der beste Weg für diese Arbeit darin besteht, ein Profiling auf der echten Live-Website zu installieren, die unter schlechter Performance leidet. Selbst wenn wir eine Kopie Ihrer Datenbank erhalten, können wir Ihren Traffic nicht simulieren. Aus diesem Grund haben alle unsere vorherigen Runden dieses spezifische Problem nicht erkannt.

Übrigens hat unsere Performance-Verbesserungsrunde nicht nur Engpässe in WPML aufgedeckt. Wir haben das behoben, was wir in WPML gefunden haben, aber wir haben auch an anderen Stellen dramatische Probleme festgestellt. Einige haben wir selbst gepatcht und andere über die Datenbank optimiert.

Wenn Sie interessiert sind, lassen Sie es uns wissen und wir helfen Ihnen bei der Installation einer Performance-Analyse auf Ihren Live-Websites. Danach helfen wir Ihnen sehr gerne bei der Analyse der Ergebnisse. Wenn wir in WPML etwas finden, werden wir es beheben. Es besteht eine gute Chance, dass Websites mit Performance-Problemen eine Reihe von Problemen finden, die aus überraschenden Quellen stammen.

Was sonst noch neu in WPML 4.2.6 ist

WPML Core 4.2.6

  • Den Filter wpml_post_edit_meta_box_priority hinzugefügt, um die Priorität der WPML-Meta-Box für die Beitragsbearbeitung zu ändern
  • Problem beim Upgrade von Plugins bei Unterordner-Installationen behoben – es werden immer Website-URLs verwendet
  • Benachrichtigungen werden nur gespeichert, wenn es erforderlich ist, um zusätzliche Schreibvorgänge in die wp_options-Tabelle zu reduzieren
  • Ein Sicherheitsproblem mit Sprachumschalter-Links behoben

WPML String-Übersetzung 2.10.4

  • Ein Problem beim Import von ST-mo-Dateien behoben, sodass die wp_option-Tabelle nicht unnötig aktualisiert wird

WPML Übersetzungsmanagement 2.8.5

  • Styling der Paginierungs-Steuerelemente auf der Seite „Übersetzungsaufträge“ verbessert
  • Ein Problem bei der Zuweisung von Übersetzern auf der Seite „Übersetzungsaufträge“ behoben, wenn die Admin-Sprache nicht Englisch ist
  • Falschen Inhalt der Spalte „Übersetzt von“ behoben, wenn die Admin-Sprache nicht Englisch ist

WPML Media Translation 2.5.2

  • Benachrichtigungen werden nur gespeichert, wenn es erforderlich ist, um zusätzliche Schreibvorgänge in die wp_options-Tabelle zu reduzieren

WPML CMS Nav 1.5.1

  • Performance verbessert, indem der Cache nur bei Bedarf geleert wird

Herunterladen und aktualisieren


Wie immer erhalten Sie dieses Update automatisch für alle Ihre registrierten Websites. Sie können sich jederzeit in Ihr WPML-Konto einloggen, um es manuell herunterzuladen und zu installieren.

Wir empfehlen, Backups zu erstellen, bevor Sie etwas auf Ihrer Website aktualisieren.

Feedback? Fragen? Vorschläge?


Unsere Websites laufen jetzt viel schneller, aber wir würden gerne von Ihren Websites hören. Bitte hinterlassen Sie Ihre Kommentare und wir werden uns bei Ihnen melden.

Fanden Sie das nützlich? Teilen Sie diesen Artikel: