Wenn eine Seite langsam lädt, ist die schwierigste Frage meist, was genau sie bremst: ein Plugin, eine schlecht geschriebene Datenbankabfrage, ein externer Dienst, auf den die Seite wartet, oder einfach erschöpfte Ressourcen des Hosting-Kontos. Beim cPanel-Hosting und beim WordPress-Hosting beantwortet die X-Ray App von CloudLinux diese Frage.
X-Ray ist ein PHP-Tracer (Profiler): Bei den Anfragen an die angegebene Adresse zeichnet er auf, wie lange PHP gearbeitet hat und wie viel davon auf die einzelnen WordPress-Plugins, Datenbankabfragen und PHP-Funktionen entfiel. Sie müssen dafür weder ein Plugin installieren noch den Code ändern, und X-Ray ist nicht auf WordPress beschränkt: Es kann jede PHP-basierte Website (Joomla, Drupal, PrestaShop, Laravel, Eigenentwicklung) verfolgen. Die Aufschlüsselung nach Plugins gibt es nur bei WordPress.
Wo finden Sie die App?
Melden Sie sich bei cPanel an und klicken Sie in der Gruppe Software auf das Symbol X-Ray App.
Die sich öffnende Seite PHP X-Ray listet Ihre bisherigen Ablaufverfolgungsaufgaben. Solange Sie noch keine gestartet haben, ist die Liste leer.
Ablaufverfolgung starten
- Klicken Sie oben rechts auf die Schaltfläche Ablaufverfolgung starten.
- Wählen Sie in der Zeile URL in der Liste Domain auswählen die Domain aus. Die Liste enthält die Domains und Subdomains Ihres cPanel-Kontos.
- Geben Sie daneben im Feld Maske angeben ein, welche Adressen innerhalb der Domain das System verfolgen soll:
*die gesamte Website, alle Adressen;/nur die Startseite;produkte/*alle Seiten unter/produkte/;*warenkorb*alle Adressen, die das Wort „warenkorb“ enthalten (einschließlich der Parameter nach dem?).
Den Schrägstrich nach der Domain setzt die Oberfläche selbst vor die Maske.
?steht für genau ein Zeichen,[ ]für eines der in den Klammern aufgeführten Zeichen (zum Beispielseite[1-3].php). Der Link Wie verwendet man Sonderzeichen? erklärt die Möglichkeiten mit Beispielen. Dieselbe Maske gilt fürhttp://- undhttps://-Adressen. - Standardmäßig zeichnet X-Ray die ersten 20 Anfragen an die angegebenen Adressen auf (Aufzeichnen für: Anfrage, 20). Wenn das passt, klicken Sie auf Ausführen.
Erweiterte Einstellungen
Wenn Sie das Kontrollkästchen Erweiterte Einstellungen aktivieren, stehen Ihnen zwei weitere Optionen zur Verfügung:
- Client-IP: Das System protokolliert nur Anfragen, die von dieser IPv4-Adresse stammen. Der Standardwert ist
*, d. h. alle Anfragen von Besuchern. Bei einer live geschalteten, stark frequentierten Website empfiehlt es sich, Ihre eigene IP-Adresse anzugeben: Auf diese Weise werden nur die Anfragen in die Liste aufgenommen, die Sie über Ihren Browser absenden, und die Adressen der Besucher sowie die von ihnen aufgerufenen URLs werden nicht erfasst. Ihre eigene öffentliche IP-Adresse können Sie beispielsweise durch eine Suche nach „Wie lautet meine IP-Adresse?“ ermitteln. Befindet sich die Website hinter Cloudflare oder einem anderen Proxy, sieht der Server möglicherweise eine andere Adresse; sollten keine Anfragen mit der angegebenen IP-Adresse eingehen, belassen Sie das Feld auf dem Wert*. - Aufzeichnen für: Bei Anfrage legen Sie fest, wie viele Anfragen das System erfasst, bei Zeitraum, wie lange (Tage, Stunden, Minuten). Der Zeitraum muss mindestens 1 Minute betragen und darf höchstens 2 Tage lang sein.
Es kann immer nur eine Ablaufverfolgung laufen. Wenn noch eine Aufgabe läuft und Sie eine neue starten, meldet die Oberfläche „Limit of running tasks is 1. You already have 1 running task“: Warten Sie, bis die laufende Aufgabe abgeschlossen ist, oder stoppen Sie sie.
Die Website während der Ablaufverfolgung aufrufen
Die Ablaufverfolgung erfasst nur echte Anfragen. Rufen Sie daher nach dem Start der Aufgabe die zu untersuchenden Seiten im Browser auf (oder warten Sie, bis Besucher sie aufrufen). Ist der Warenkorb oder die Kasse langsam, führen Sie den langsamen Vorgang aus; ist der Adminbereich langsam, klicken Sie sich durch die langsamen Adminseiten.
Wichtig: X-Ray sieht nur, was PHP ausführt. Wenn eine Seite aus einem Cache kommt (einem WordPress-Cache-Plugin wie WP Super Cache oder W3 Total Cache oder dem Cloudflare-Cache), startet PHP gar nicht, und die Anfrage erscheint nicht. Deaktivieren Sie in diesem Fall vorübergehend den Cache, oder melden Sie sich im WordPress-Adminbereich an (die meisten Caches liefern angemeldeten Benutzern keine gespeicherten Seiten aus). Bilder, CSS- und JavaScript-Dateien liefert der Webserver direkt aus, daher erscheinen auch sie nicht in der Ablaufverfolgung.
Die Liste der Ablaufverfolgungsaufgaben
In der Aufgabenliste sehen Sie Folgendes:
- URL: die Domain und die Maske, auf die sich die Aufgabe bezieht.
- Status der Ablaufverfolgung: Läuft (darunter, wie viele Anfragen noch fehlen, zum Beispiel „5 times left“), Abgeschlossen (die gewünschte Zahl an Anfragen ist erfasst oder der Zeitraum ist abgelaufen) oder Gestoppt.
- Client-IP: die angegebene IP-Adresse bzw.
*. - Erfasste Anfragen: die Zahl der bisher aufgezeichneten Anfragen.
- Läuft ab in: so lange sind die Daten der Aufgabe noch verfügbar. Der Server bewahrt die Aufgaben 30 Tage ab ihrer Erstellung auf und löscht sie danach.
- Aktionen: Das Augensymbol öffnet die erfassten Anfragen, das Quadratsymbol stoppt die laufende Aufgabe (Bestätigung: Ja, stoppen), das Dreiecksymbol setzt eine gestoppte Aufgabe fort, und das Papierkorbsymbol löscht die Aufgabe mit allen Daten (Bestätigung: Ja, löschen).
Die Liste aktualisiert sich nicht von selbst: Klicken Sie auf Aktualisieren, oder schalten Sie Automatisch aktualisieren ein.
Die erfassten Anfragen
Das Augensymbol öffnet die Seite Aufgezeichnete Sitzungen der Aufgabe. Oben sehen Sie drei Zahlen:
- Gesamt: die Gesamtzahl der erfassten Anfragen.
- Ausstehend: bereits erfasste Anfragen, die noch verarbeitet werden. Sie erscheinen nach einigen Sekunden oder Minuten in der Tabelle.
- Langsam: Anfragen, die länger als 1 Sekunde dauern.
Die Tabelle zeigt standardmäßig nur die langsamen Anfragen (darauf weist der Filter Langsam unter dem Suchfeld hin), die langsamste zuerst. Gab es keine langsamen Anfragen, erscheint die Meldung „Es wurden keine langsamen Anfragen erkannt!“; mit der Schaltfläche Alle Anfragen anzeigen sehen Sie dann trotzdem die schnellen. Über die Liste Anfragen ändern Sie den Filter, im Feld Nach URL suchen suchen Sie nach einer Adresse.
Details zu einer Anfrage
Ein Klick auf eine Zeile öffnet die ausführliche Analyse der Anfrage. Mit den Pfeilen oben rechts wechseln Sie zur nächsten oder vorherigen Anfrage, und mit der Schaltfläche Als PDF herunterladen erstellen Sie einen Bericht, den Sie Ihrem Entwickler oder unserem Support schicken können.
- Top 3 Probleme: die drei langsamsten Teile der Anfrage mit ihrem Typ (Module/Plugin: ein Plugin, Database query: eine Datenbankabfrage, System function: eine PHP-Funktion). Wenn Sie nur eine Tabelle ansehen, dann diese.
- Top-Softwaremodule/-Plugins nach Ausführungszeit: die Laufzeit der WordPress-Plugins. Auf Websites, die mit dem WP Toolkit verwaltet werden, erscheint auch
wp-toolkit: das eigene Modul des WP Toolkits, das neben WordPress installiert ist; seine Laufzeit ist meist vernachlässigbar. - Top-Datenbankabfragen nach Ausführungszeit: die SQL-Abfragen mit der Datei und Zeile, von der sie ausgingen (Datei), dem Plugin, zu dem sie gehören (Softwaremodul), und der Zahl, wie oft dieselbe Abfrage lief (Aufrufe).
- Andere Systemfunktionen: die langsamsten PHP-Funktionen, ebenfalls mit Datei und Zeile.
curl_execist eine externe HTTP-Anfrage (zum Beispiel der Aufruf einer API, eines Lizenzservers oder einer Update-Prüfung): Hier wartete die Seite auf die Antwort eines anderen Servers.
Wenn Sie auf den Pfeil am Anfang der Zeilen klicken, wird der verkürzte Dateipfad in seiner vollständigen Länge angezeigt.
Die Spalte Dauer (%) gibt an, wie viel Prozent der Gesamtdauer der Anfrage auf das jeweilige Element entfielen; in Klammern ist die genaue Zeit angegeben. Die Prozentsätze überschneiden sich, weshalb sie sich nicht zu 100 % addieren: Die Laufzeit eines Plugins umfasst auch die Laufzeit der von ihm ausgelösten Abfragen und Funktionen. Im obigen Beispiel beanspruchte ein absichtlich langsam programmiertes Test-Plugin (kb-xray-teszt) 92,6 % der Anfragezeit, wobei eine langsame Abfrage 60 % und ein usleep-Aufruf 27 % davon ausmachten.
Was sollen Sie mit dem Ergebnis tun?
- Ein Plugin beansprucht den größten Teil der Zeit: Aktualisieren Sie es auf die neueste Version, prüfen Sie seine Einstellungen (viele Plugins sammeln bei jedem Seitenaufruf Statistiken, rufen externe Dienste auf oder schreiben Protokolle), und deaktivieren Sie es, wenn Sie es nicht brauchen. Wie das geht, erklärt der Artikel zur Plugin-Verwaltung im WP Toolkit. Bevor Sie auf der Live-Website etwas ändern, probieren Sie es auf einer Staging-Kopie aus.
- Eine Datenbankabfrage ist langsam: Häufig liegt die Ursache in einer überladenen Tabelle. Überprüfen Sie bei WordPress die automatisch geladenen Daten der Tabelle wp_options sowie die Tabelle wp_postmeta.
- Dieselbe Abfrage läuft sehr oft (hoher Wert bei Aufrufe): Das ist typischerweise ein Fehler eines Plugins oder des Themes, das eine Liste Element für Element mit je einer eigenen Abfrage lädt. Melden Sie es dem Entwickler des Plugins oder Themes; der PDF-Bericht ist dafür ein guter Ausgangspunkt.
curl_execist langsam: Die Seite wartet auf einen externen Server. Ermitteln Sie anhand der Spalte Datei, welches Plugin die Anfrage auslöst; sollte es zu einer Zeitüberschreitung kommen, hilft Ihnen der Artikel zu den cURL-Fehlern 28 und 60 weiter.- Die Anfrage wurde durch ein Ressourcenlimit verlangsamt: Wenn ein Konto während einer Anfrage das Limit für die Prozessor- oder Festplattenauslastung (E/A) erreicht hat, weist X-Ray bei der Anfrage gesondert darauf hin. In diesem Fall ist nicht der Code langsam, sondern das System hat die Anfrage gedrosselt. Überprüfen Sie die Ressourcenauslastung Ihres Kontos, und sollten Sie regelmäßig an die Grenze stoßen, empfiehlt es sich, zu einem größeren Paket zu wechseln (siehe auch: Fehler 508 Resource Limit Is Reached).
- Alle Anfragen sind schnell, die Seite ist trotzdem langsam: Die Langsamkeit liegt nicht an PHP, sondern im Browser (große Bilder, viel JavaScript, externe Schriftarten und Skripte). Das zeigt PageSpeed Insights; der Artikel zur Beschleunigung von WordPress und der Artikel zur Leistung von cPanel-Hosting geben Anregungen. Die häufigsten Gründe, warum WordPress langsam wird, fasst unser Blogbeitrag zusammen.
Gut zu wissen
- X-Ray ist Teil des Betriebssystems CloudLinux. Auf dedizierten cPanel-Servern läuft standardmäßig kein CloudLinux, daher ist die X-Ray App dort nicht verfügbar.
- Die Ablaufverfolgung bremst die Website während des Laufs etwas: Nach Messungen von CloudLinux steigen die Ladezeiten um 5–10 %. X-Ray ist daher nicht zur dauerhaften Überwachung gedacht, sondern um die Ursache einer konkreten Verlangsamung zu finden. Die Aufgabe endet von selbst nach der gewünschten Zahl an Anfragen oder dem Zeitraum und verbraucht keine Ressourcen, solange sie nicht läuft.
- Solange eine Aufgabe ausgeführt wird, ist die JIT-Funktion des PHP-OPcache auf der betreffenden Website deaktiviert; nach Abschluss der Aufgabe wird sie wieder aktiviert.
- Die erfassten Daten (URLs, IP-Adressen, SQL-Abfragen) sind 30 Tage lang verfügbar und werden danach automatisch gelöscht. Wenn Sie sie früher entfernen möchten, löschen Sie die Aufgabe.
- In der Benutzeroberfläche lässt sich keine dauerhafte Ablaufverfolgung mit täglichen Berichten einrichten. Wenn eine zeitweise auftretende Verlangsamung länger beobachtet werden muss, schreiben Sie uns, und wir helfen Ihnen.
- Wenn Sie bei der Fehlersuche auch PHP-Fehlermeldungen einsehen möchten, aktivieren Sie bitte den WordPress-Fehlerbehebungsmodus.





