Freitag, 20. März 2020
Need for Speed
Schon seit Anbeginn von www.beatsblog.ch stellen wir eine signifikante Verlangsamung fest, sobald ein einzelner Beitrag aufgerufen wird. Dies habe ich vor über einem Monat auch dem Manitu-Support gemeldet. Seither gab es ein paar Mails, vorwärts und zurück, doch das Problem ist immer noch da und keiner weiss so genau, wie weiter. Hier ein Beispiel:
www.beatsblog.ch (hosted by manitu) https://www.beatsblog.ch/1230-zum-zweiten-Mal.html -> Seitenaufbau 4.19 sec. davon 3.77 Wait ?
www.blog.dokumenzi.ch (hosted by hosttech) https://www.blog.dokumenzi.ch/1230-zum-zweiten-Mal.html -> Seitenaufbau 0,52 sec. davon 0.18 Wait ?
Heute nun habe ich mir Zeit genommen um auf dem Manitu-Webspace eine Subdomaine einzurichten. Darauf installierte ich eine aktuelle Styx Dev 3.0 alpha4 Version. Danach exportierte ich aus der DB von www.beatsblog.ch die entries-Tabelle und importierte diese in den leeren Blog. Das heisst, keine Plugins, keine Bilder, kein spezielles Template, keine Kategorien, keine Tags, kein irgendwas...
Das Resultat:
www.styx.beatsblog.ch (hosted by manitu) https://styx.beatsblog.ch/1230-zum-zweiten-Mal.html -> Seitenaufbau 0,43 sec. davon 0.1 Wait ??
Grummel... Es sieht also verdammt so aus, als ob ich selbst die Verzögerung irgendwo eingebaut habe. ?
Alle weiteren Schritte im Erweiterten Beitrag
20.03.2020, 23:00 Uhr
Habe alle Bilder (/uploads) von www.beatsblog.ch nach styx.beatsblog.ch kopiert.
Folgende DB-Tabellen habe ich aus www.beatsblog.ch exportiert. Per Editor ersetzte ich wo nötig die www-Adresse oder den Benutzernamen. Danach importierte ich die Daten in die entsprechenden Tabellen von styx.beatsblog.ch
- styx_entryproperties
- styx_images
- styx_mediaproperties
- styx_permalinks
- styx_references
zusammen mit den styx_entries und styx_comments Tabellen wurden bisher also 7 Tabelleninhalte übernommen. Ein paar Checks zeigten, dass -zumindest auf den ersten Blick- alles soweit noch stimmt und schnell funktioniert.
Zudem habe ich die Konfiguration des nl2br-Plugins auf "Kommentare" reduziert. Somit passt auch die Textdarstellung wieder.
Aktuelle Messungen:
- Indexseite - styx.beatsblog.ch = 2,7MB, 44 Requests, 545ms, davon 217ms Wait
- Einzelbeitrag - styx.beatsblog.ch/2630-relax-and-enjoy-life.html = 1,7MB, 26 Requests, 489ms, davon 137ms Wait
Dann habe ich zusätzlich zu styx.beatsblog.ch noch die Subdomaine www.styx.beatsblog.ch eröffnet. Die Geschwindigkeit bei beiden Adressen (mit oder ohne www) ist ziemlich identisch.
Und ich konnte es nicht lassen: Ich kopierte das PURE-BEAT-Theme und aktivierte es. Phu, bin ich froh, dass nicht mein Template die grosse Wartezeit verursacht. Nun liegen die Messungen bei:
- Indexseite - styx.beatsblog.ch = 2,8MB, 50 Requests, 665ms, davon 170ms Wait
- Einzelbeitrag - styx.beatsblog.ch/2630-relax-and-enjoy-life.html = 1,8MB, 31 Requests, 420ms, davon 45ms Wait
Was mir bei den pingdom.com- und auch GTmetrix.com-Speedtests auffällt. Es wird immer angezeigt, dass gzip-Kompression verwendet werden soll. In der S9Y-Konfiguration ist dies aktiviert (habe nochmals nachgesehen). Bist Du sicher, dass dies auch funktioniert?
21.03.2020 11:30 Uhr
Ich habe mir überlegt, wie ich weiter vorgehen soll. Zur Auswahl stand: Ich importiere alle DB-Tabellen, die es meiner Ansicht nach noch braucht und beginne erst danach alle Plugins zu installieren oder eben umgekehrt. Zuerst die Plugins und dann die noch fehlenden Daten. Die Entscheidung fiel auf: DB-Daten zuerst.
- styx_categories
- styx_categorytemplates
- styx_entrycat
Hmm... ? Irgendwie hapert die Selektion der Kategorien noch. Vermutlich muss ich Template- und Browsercache mal leeren. Hat leider nichts gebracht. Unter /Inhalt/Kategorien sowie in der Seitenleiste wird die richtige Anzahl an Beiträgen angezeigt. Ein Klick auf einen Kategorien-Link führ aber keine Selektion durch. ? Es könnte noch damit zusammenhängen, dass ich im Original-Blog das Plugin für "Erweiterte Kategorie-Eigenschaften" im Einsatz habe.
Nun installierte und konfigurierte ich diese Ereignis-Plugins:
- categorytemplates
- ckeditor
- lightbox
Das Selektionsproblem bei den Kategorien hat sich dadurch nicht gelöst. Egal. Hier eine Zwischenmessung bezüglich Geschwindigkeit:
- Indexseite - styx.beatsblog.ch = 2,9MB, 59 Requests, 917ms, davon 262ms Wait
- Einzelbeitrag - styx.beatsblog.ch/2630-relax-and-enjoy-life.html = 1,9MB, 39 Requests, 688ms, davon 142ms Wait
- -> es wurde schon etwas langsamer, doch immer noch im grünen Bereich.
Import von DB-Tabelle styx_entrytags und Installation/Konfiguration des freetag-Plugins. Funktioniert! Insgesamt habe ich nun 11 DB-Tabellen importiert (es fehlen eigentlich nur noch die 2 für Statische Seiten). Es sind im Moment 6 (von 7) Seitenleisten-Plugins und 12 (von 21) Ereignis-Plugins installiert. Noch sieht alles gut und schnell aus. ?
Seitenleiste:
- links: Kommentare hinzugefügt
- rechts: History-Plugin hinzugefügt
- rechts: Syyndication-Plugin angepasst
- rechts: imagesidebar-Plugin hinzugefügt
- rechts: HTML-nugget (für Styx) hinzugefügt
- archives-Plugin versteckt
- superuser- und powered-Plugin gelöscht
Soweit sind jetzt alle Seitenleisten-Plugins installiert (8 Stk.). Später werde ich das category-Plugin nich löschen und das freetag-Plugin verstecken. Dann ist die Situation identisch wie hier und auf www.beatsblog.ch.
Hier eine Zwischenmessung bezüglich Geschwindigkeit:
- Indexseite - styx.beatsblog.ch = 3,0MB, 62 Requests, 1'140ms, davon 446ms Wait
- Einzelbeitrag - styx.beatsblog.ch/2630-relax-and-enjoy-life.html = 2,0MB, 43 Requests, 771ms, davon 308ms Wait
- -> mit den zunehmenden Request und der stets grösseren Seitengrösse, verlangsamt sich alles. Dennoch: Ein Einzelbeitrag wir immer noch schneller angezeigt, als eine Indexseite. So sollte es auch sein.
FULL-STOP! Plötzlich habe ich eine zündende Idee! ? -> das Plugin für die Nächste oder Vorherige Seite (entrypaging) ist das einzige Plugin, welches nur auf Single-Entry-Seiten aktiv ist. Also mal testweise auf www.beatsblog.ch ausschalten... HEUREKA! ✔ Das ist der Übeltäter! Somit kann ich die Aktionen hier mit gutem Gewissen abbrechen.
Dieser Link ist nicht aktiv. Er enthält eine kopierbare Trackback-URI, um manuell ein Ping- und Trackback zu diesem Eintrag für ältere Blogsysteme zu generieren; zB (immer noch valide) über das zur Verfügung gestellte Eintragsfeld des serendipity_event_trackback Plugins. Serendipity und andere Blogsysteme erkennen die Trackback-URL heutzutage aber automatisch anhand der Artikel-URL. Die Trackback-URI für ihren Link des Sender-Eintrages lautet daher wie folgt: »https://www.blog.dokumenzi.ch/2633-Need-for-Speed.html«
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Beat Post author am :
Muss mir echt überlegen, wie ich da sinnvoll vorgehe um den "Zeitfresser" zu finden.
Beat Post author am :
Habe soeben festgestellt, dass bei der Testinstallation die Indexseiten über 4 Sekunden zum Aufbau brauchen. Komisch. Das Verhalten ist auf www.styx.beatsblog.ch genau umgekehrt wie auf www.beatsblog.ch
Wobei... das liegt wohl daran, dass keine Bilder gefunden werden. Als nächstes kopiere ich mal den /uploads/2020-Ordner und teste erneut.
Ja, es waren die fehlenden Bilder. Nun baut die Indexseite in ca. 0,5sec. auf.
Ian Styx am :
Wahnsinn! Sehr gute Idee!
Du kannst also entweder auf dem realen Blog alles einzeln abschalten (insbesondere die Plugins) und dann jeweils en Detail überprüfen oder auf dem testblog alles einzeln dazuschalten, so wie du es jetzt mit den Bildern gemacht hast, und dann en Detail überprüfen. Bis jetzt sieht das ja echt gut aus, bis darauf, dass dir nl2br irgendwie hinein funkt..
Tja, wer steht da wohl auf der Bremse...!?!?
Beat Post author am :
Ich schraube nur sehr, sehr ungern am Live-Blog herum. Dafür baue ich ja Test-Installationen auf.? Deshalb werde ich also die neue styx.beatsblog.ch-Installation erweitern und immer wieder testen (Fortschritte siehe Erweiterter Beitrag).
Ganz ehrlich: Ich hoffte, dass der Fehler bei Manitu liegt und nicht bei mir (eigentlich wollte ich ihn reproduzieren). Nun muss ich X Stunden investieren um "dem Fehler" auf die Schliche zu kommen. Und wie es Murphy so will, werde ich vermutlich erst ganz zum Schluss die Lösung des Rätsels finden... und wie schon öfters erwähnt: Ich mag keine Rätsel und Knobeleien... ?
Ian Styx am :
Nö, bin ich nicht. Ich glaube dass der Server, i.d.F. Apache das auch unterstützen muss.. Sollte er aber heutzutage. Meine Frage daran bleibt, ob das wirklich effektiv ist und nicht nur zu den Wundertüten der SEO Heiler gehört. Schließlich leben wir ja nicht mehr in den 80igern. ?
Aber:
Results for: https://beatsblog.ch/categories/BLOG
Web page compressed? Yes
Compression type? gzip
Size, Markup (bytes) 62,194
Size, Compressed (bytes) 16,147
Compression % 74.0
Response Headers
HTTP Status CodeHTTP/1.1 200 OK
Date Sat, 21 Mar 2020 09:01:32 GMT
Server Apache
Status 200 OK
Set-Cookie s9y_b28dXXXXXXX13e9b=4sciiYYYYYYY6mi1; path=/; secure
Expires 0
Cache-Control private, pre-check=0, post-check=0, max-age=0
Pragma no-cache
X-Session-Reinit true
X-FreeTag-Count Array
Content-Encoding gzip
Vary Accept-Encoding
Strict-Transport-Security max-age=31536000;includeSubDomains
Transfer-Encoding chunked
Content-Type text/html;charset=UTF-8
Sieht doch also gut aus!
Beat Post author am :
Mir als Laien kann man ja alles erzählen... mir reicht es völlig, wenn Du der Meinung bist, dass es richtig funktioniert. Vielen Dank für die Überprüfung. ?
Beat Post author am :
Hast Du mir vielleicht einen Tipp wegen dem Selektionsproblem bei den Kategorien?
Ian Styx am :
da fehlt die Nummer - zB. /styx-master/categories/11-Nonsence - und die die ist wichtig, siehe auch
Beat Post author am :
Ich weiss, was Du meinst, doch interessanterweise habe ich diese Kategorien-Nummern im Live-Blog auch nicht (oder zumindest nirgends sichtbar). Auch hier nicht. Ich wüsste also so auf die Schnelle gar nicht, wie und wo ich die im neuen Testblog eintragen müsste.
Ian Styx am :
ÄHEM!
Das ist nicht "interessanterweise", sondern auf den eigenwilligen Blogbetreiber zurückzuführen ... ?
Unter Konfiguration - Permalinks muss/sollte stehen
Permalink-Struktur für die Artikel-URLs archives/%id%-%title%.html
Permalink-Struktur für Autoren-URLs authors/%id%-%realname%
Permalink-Struktur für Kategorie-URLs categories/%id%-%name%
feeds hast du richtig.
Die .htaccess Umleitungen hängen damit zusammen und für die interne Treffsicherheit ist der ID mancherorts unabkömmlich! Wie du gesehen hast, möchte das category sidebar Plugin zB. dringend eine solche, damit sie diese auch tatsächlich zustellen kann.
https://ophian.github.io/book/#S330 und folgend (zb Suche F3 nach "/categories/").
Änderungen in der Permalink Struktur sollten nur gemacht werden, wenn man die möglichen Folgen und Abhängigkeiten einigermaßen selbst abschätzen kann.
Beat Post author am :
Ertappt! ?
zugunsten "schönerer" URLs habe ich bei den Artikeln archives/ und bei den Kategorien die %id% entfernt.
Ich hatte auch bei den Artikeln mal die %id% entfernt, doch dann stellte ich relativ schnell fest, dass ich mehrere Artikel mit dem selben Titel hatte und das System so nun nicht mehr genau wusste, was anzuzeigen ist. Deshalb habe ich dann die %id% wieder angefügt. Den Vorteil von archives/ müsste man mir noch näherbringen...
Bei Kategorien brauche ich keine ID, denn es wäre ja unsinnig, wenn zwei Kategorien gleich benannt würden. Ich bezweifle auch, dass noch viele neue Kategorien dazukommen werden.
Wirklich wichtig ist mir das Thema nicht, doch dies wieder zu ändern ist auch nicht ganz trivial. Gesetzte Trackbacks oder Links auf Kategorien würden nun plätzlich nicht mehr funktionieren und ich müsste alle Artikel nach diesen Geschichten absuchen und entsprechend ändern/korrigieren.
Ian Styx am :
Hattest du eigentlich jemals geprüft, ob der fehlende Permalinkanteil in Artikeln /archives/ irgend etwas mit dem Delay des entrypaging zu tun hat?
Beat Post author am :
Wie meinen ❓ Wie könnte ich dies denn prüfen?
Das /archives/ führe ich schon seit Jahren nicht mehr. Schon auf dem S9Y-Blog (www.bbeat.ch) nicht, hier nicht und auch auf beatsblog.ch nicht.
Ian Styx am :
Na dann. Es muss irgendeinen sachlichen Grund geben. Immer noch. Ich fiel nur vorhin wieder drüber....
Schwamm drüber!.