Seitenaufbau braucht meist bis zu 30 Sekunden

  • auf der Site werden alleine 18CSS Dateien geladen

    Scripte von Plugins die man vermutlich nicht sitewide braucht

    caching wird ziemlich sicher nur für "not logged in " user gemacht

    von mir aus fahr das mit einer reinen HTML Site hoch und es wird ewigst und drei Tage brauchen :-)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Nein, der Server ist absolut korrekt eingestellt und der kann wirklich ausgeschlossen werden.

    Das Problem liegt gänzlich am Wordpress und bis gestern Abend lief es noch innerhalb von 3 - 5 Sekunden und nicht wie jetzt 30 - 40 Sekunden.

    D.h irgendwas am Wordpress hat sich getan, ich tippe langsam auf den Post View Counter, der im Theme dabei ist, evtl. zählt er bei den 12655 Beiträgen zu viel und verursacht deshalb die Verzögerung.

    Ich habe jedenfalls die letzten 2 Tage nichts anders gemacht, als News zu posten...

    VG

  • Dann teste doch mal ausführlich mit einem Standard-Theme.

    P.S. Ich würde mal die Angaben in deinem Header reduzieren. Dort ist fast deine halbe Serverkonfiguration sichtbar ;-).

  • Hmmm, jetzt verstehe ich nichts mehr... Ich habe gesehen das auf der Startseite unser RSS Feed vom Board nicht funktioniert, weil das Board nicht erreichbar war, lädt dann ewigkeiten... Habe dann das Board bzw. den Server gestartet, wo sich das Board befindet, damit das Board wieder erreichbar ist.

    Nun rennt das Board wieder und der Blog auch...

    Nur kann mir mal jemand sagen, was das RSS Widget von Wordpress damit zu tun hat, ob man angemeldet ist, oder nicht? Weil bei Gästen baute sich die Page instand auf. Nun habe ich wieder ca. 4 - 5 Sekunden Ladezeit, was im Rahmen ist.

    Ich verstehe den Zusammenhang wie gesagt zwischen RSS Widget und Angemeldet, oder Gast. Absolut nicht.

    Du meinst Serverseitig? ;)

    VG

    Einmal editiert, zuletzt von Sisslik (2. September 2015 um 16:51)

  • Hallo,

    anstatt per Trial & Error in dem Sumpf rumzurühren solltest Du etwas analytischer an das Problem heran gehen. Erste Informationsquellen sind die Logs vom Server, zusätzlich kannst Du über einen Zeitraum von evtl. 2-3 Tagen ein Log von WordPress generieren lassen.

    Code
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);
    @ini_set('display_errors',0);

    Das Logfile findest Du dann in wp-content.

    Wenn sich die Probleme für angemeldete Benutzer einstellen, ist das ja bereits eine erste Abgrenzung. Ich kenne diese Probleme, wenn Slugs und oder Taxonomien doppelt deklariert wurden. Das bremst WP ungemein aus, weil es zu Fehlern bei den DB-Abfragen kommt und dann Klassen/Funktionen mit leeren Variablen dastehen.

  • Vielen Dank, dass werde ich tun.

    Mal eine allgemeine Frage, ich nutze viele Schlagwörter, ist das evtl. Ursache das Problemes?

    z.B werden Artikel immer mit den Schlagworten: PC, MAC, etc. hinterlegt, in einem Beitrag sind dann schon mal 3 - 10 Schlagwörter enthalten.

    VG

  • Kann durchaus sein - muss aber nicht. Wie gesagt: die Summe aus Plugins und Verbastelungslevel potenziert sich sehr gerne.

    Vor ein paar Wochen hatte ich ein solches Problem bei einer Instanz, die in 3 Sprachen mittels WPML-Plugin übersetzt wurde. Weder Beiträge noch Seiten noch Custom Post Type konnte gespeichert werden. 2 Ursachen wurden ausfindig gemacht: 3 Bugs im WPML-Plugin und ein weiteres Plugin für die Massenbearbeitung von Tags. Teilweise wurden die Slugs ohne Vorwarnung überschrieben und die kompletten Taxonomien im Bereich der Mehrsprachigkeit zerwürfelt. Macht Spaß, so ein Malheur direkt in der Datenbank zu beheben.

    Der (Neu)Kunde hat souverän reagiert und wir portieren grade fleissig auf Typo3. ;)

  • Okay, kann ich den etwas machen um dagegen vorzubeugen? Sieht man das eigentlich irgendwo, wenn es Probleme gibt?

    Oh je, also das wäre für mich auch ein Grund, um sofort umzusteigen, ich hatte ja auch schon Typo3 im Auge, aber wenn das ganze jetzt läuft, möchte ich nur noch wissen, warum er etwas langsamer läuft als, wenn ich als Gast unterwegs bin.

    Ich habe den Debug Modus aktiviert und hoffe auf Erkenntnis.

    VG

  • So ich habe schon die erste Fehlermeldung, mehr als das kam jetzt nicht.

    [02-Sep-2015 16:18:41 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 16:18:41 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 16:46:22 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 16:46:22 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:14:38 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:15:19 UTC] Aq_Resize.process() error: $url parameter is required
    [02-Sep-2015 17:15:19 UTC] Aq_Resize.process() error: $url parameter is required

  • Eine strukturierte Vorgehensweise mit Konzept, Plan und Umsicht ist immer eine gute Sache. Als erfahrener WordPressler (aber keine Super-Experte) programmiere ich das, was ich brauche, lieber selber. WordPress verleitet leider dazu, für jeden Wunsch ein Plugin zu suchen und einzusetzen. Das führt häufig zu Problemen. Natürlich gilt das auch bei anderen Systemen wie Typo3 - auch dort kann man nicht einfach eine Extension installieren und alles läuft. Dafür ist das System selbst schon viel zu komplex.

    Eine Alternative zu WordPress ist Ghost. Für den normalen Anwender aber nicht praktikabel, da ohne profundes Wissen schon die Installation scheitert (sofern man kein Hosting bucht).

    Wenn Du eingeloggt bist, werden zusätzliche Dinge (u. a. auch Plugins) abgefragt. Das kann sich dann schon mal "beissen" oder schlichtweg die Datenbankabfragen ausreizen. Der Fehler steckt im Detail und das ist bei WordPress ziemlich schwierig einzugrenzen, da es eben über keine ausgereifte Debugroutine verfügt.

    Ein Bekannter hatte auch mal eine extreme Bremse in seinem Blog. 2 Tage habe ich ihm unter die Arme gegriffen und wir haben nicht mal Ansatzweise das Problem eingrenzen können. Bis eine Kollegin meinte: "Hat der die Unterverzeichnisse ausgeschaltet?". Klingelingeling! Verzeichnis mit mehr als 10.000 Dateien hat der Server nicht mehr gepackt. Upgrade, ein paar Einstellungen angepasst, läuft. Ein weiteres großes Manko bei WordPress: Themes (und ggf. Plugins) generieren für ihre Bedürfnisse teilweise eine absolute Unmenge an verschiedenen Bildgrößen. WordPress hat hier kein Caching und vor allem kein Processing. DAM und FAL gibt es nicht, auch wenn die Mediathek das irgendwo suggeriert. :)

    Was Du noch machen kannst: es gibt das ein oder andere Plugin, was die verschiedenen Taxonomien überprüfen kann. Ich habe hier auch ein kleines PHP-Skript, was die Permalinks ausgibt. Bei Interesse poste ich das mal.

  • Oh ja, wir versuchen das auch und machen immer viele Backups, die letzten Wochen haben wir viel auf das Detail geachtet, wenn mal was geklemmt hat. Aber wie du schon sagst, es gibt zu viele Plugins die sich evtl. nicht vertragen, jedes Plugin ist eine Belastung und ein Risiko, nicht nur für die Sicherheit.

    Ghost werde ich mal anschauen, noch nie davon gehört.

    Genau, wir haben das ganze ja schon 10 Tage in der alten WP Installation geprüft, als dort die Probleme angefangen hatten "http://test.hqgaming.de" und dann mit den Achseln gezuckt und es neu aufgebaut, ich habe es nicht mal gewagt, die Seiten, die ich monatelang erstellt hatte, zu exportieren und zu importieren, weil man den Fehler nicht gefunden. Ich habe natürlich schon die Sorge, dass dies auch bei dem Aktuellen Blog passiert und ich nach 2 Monaten wieder hier bin und die Welt nicht mehr verstehe, ähm Wordpress :-D

    Das habe ich auch schon gemerkt, dass unzählige Bilder angefertigt werden, aber ich denke mal, der Prozess geht nur solange, er die Bilder bearbeitet, nach dem posten wählt er ja die richtige Größe aus. Aber man muss schon Angst und Sorge habe, dass Wordpress nicht mit der Zeit zugemüllt wird und irgendwelche Plugins, die DB Optimieren traue ich nicht, wer weiß ob die nicht am Ende alles verpfuschen und dann schaut man doof aus der Wäsche.

    Wenn du mir mal ein Plugin Empfehlen kannst, bzw. eines geben, dann gerne.

    /EDIT: was mir eben wieder aufgefallen ist und mich zutiefst verstört, dass Wordpress immer mehr Requests bekommt, vor einigen Tagen ware es noch 66, gestern 77, heute 81, jetzt 83... ich habe sogar jetzt 2 Plugins deinstalliert und immer noch 83... ich verstehe einfach nicht, woher die Requests kommen.

    VG :-)

    Einmal editiert, zuletzt von Sisslik (2. September 2015 um 20:26)

  • Ghost verfolgt mehr den reinen Blog-Charakter. Ist natürlich auch mehr. Basiert auf node.js, deswegen kann man das nicht einfach runterladen und installieren. Das als kleine Vorabinfo. :)

    Ich kann Dir nur empfehlen, bei WordPress auf möglichst viel zu verzichten. Und anstatt alles per Plugin nachzurüsten selber Hand anzulegen. Vieles ist bspw. auch innerhalb des Themes (functions.php) zu erledigen. Erfordert Programmierkenntnisse.

    Die WordPress-API generiert von Haus aus sehr viele Datenbankabfragen. Wenn dann noch ein komplexes Theme mit Framework und ein ganzes Bataillon an Plugins hinzu kommt, hat der Webserver schnell eine Spaßbremse. Je nach Konstellation werden dann Cache-Plugins mehr zur Spaßbremse als zu einer Verbesserung der Situation. Abhilfe schafft bei WordPress - so meine eigene Erfahrung - ein Server mit SSD (Datenbank wohlgemerkt).

  • Hmmm, jetzt verstehe ich nichts mehr...


    Nur kann mir mal jemand sagen, was das RSS Widget von Wordpress damit zu tun hat, ob man angemeldet ist, oder nicht? Weil bei Gästen baute sich die Page instand auf. Nun habe ich wieder ca. 4 - 5 Sekunden Ladezeit, was im Rahmen ist.

    Ich verstehe den Zusammenhang wie gesagt zwischen RSS Widget und Angemeldet, oder Gast. Absolut nicht.

    Das PHPMagazin veröffentlicht zurzeit eine umfangreiche Serie über PHP Profiler im Vergleich. Sie stellen XHProf und auch meinen bevorzugten Xdebug vor.

    Da du einen eigenen Server hast, kannst du Xdebug gleich mit Netbeans verbinden und kannst in deiner IDE genau sehen, was wo wie hängt.

    Hoffe, die Antwort hilft dir weiter

    Mit offenen Augen träumen

  • https://github.com/syamilmj/Aqua-Resizer

    Potentielle Quelle für Deine Systembremse! Vermutlich im Theme verankert.

    Du kannst mit dem folgenden Befehl unter Linux suchen gehen:

    Code
    grep -rnw './' -e "aq_resize"

    Bitte vorher in den Theme-Ordner wechseln (und etwas Zeit mitbringen).

  • Steht auf der Webseite - generiert On-the-Fly Thumbnails.

    Skript als datei.php im Hauptverzeichnis von WordPress speichern (dort wo die wp-config.php ist).

    Es sind 2 Varianten für die Datenbankabfrage vorhanden. Wenn es bei der Variante mit WP_Query Probleme geben sollte, kommentier die beiden Zeilen aus und darunter die Abfrage über get_results ein.

    Du kannst die Ausgabe auch um weitere Felder ergänzen. Vorsicht bei umfangreichen Instanzen - hier sollte man mit LIMIT arbeiten (Skriptlaufzeit).

    Nach der Verarbeitung bitte wieder löschen.

  • Ah alles klar.

    Vielen Dank, hat auch super funktioniert.

    Ich habe das ganze mal überflogen, weil das sehr viele Einträge sind, wenn ich das richtig verstehe, müsste ich nur schauen, ob irgendwo zwei Einträge doppelt sind, richtig? Da habe ich jedenfalls nichts gesehen :-)

  • Das kannst Du mit dem Skript automatisieren (SQL-Befehl DISTINCT reicht für den Anfang).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!