Das Aufrufen einer beliebigen Seitenansicht dieses Blogs hier dauert derzeit mehrere Sekunden und damit viel zu lange: Es flutscht nicht, es zieht sich. Wiewohl ich die Zahl der zur Seitenerstellung nötigen Datenbank-Abfragen [1] durch Einsatz eines pfiffigen Plugins [2] signifikant reduzieren konnte (mit spürbar beschleunigender Wirkung), braucht es selbst in verkehrsschwächeren Tagsrandlagen immer noch mindestens drei bis vier quälend lang erscheinende Sekunden, bis sich nach einem Mausklick die gewünschte Ansicht aufgebaut hat. [3]
Ursache des Elends ist der Umstand, daß der zum letzten Jahreswechsel erfolgte Umzug von der Plattform eines bekannten Blog-Hosters in das eigene virtuelle Heim der Verlegung aus einem gut verwalteten Miet-Wolkenkratzer in die eigene Schuhschachtel in einem riesigen Reihenhauspark gleichkam: Mit vielen anderen Nutzern muß sich der zonebattler nun die Ressourcen eines Datenbank-Servers teilen, der natürlich keineswegs herumtrödelt, aber eben grenzwertig belastet ist. So wie unsereiner im realen Leben zuweilen auch, wenn er im Büro [4] links den Hörer des Festnetztelefons am Ohr hat und rechts das Dienst-Handy, zwischendrin jedoch nur ein einziges, auf sequentielle Abarbeitung spezialisiertes Hirn...
Mit internen Optimierungsmaßnahmen (Cachen hier, Ballast abwerfen da) bin ich jetzt durch, weitere Performance-Gewinne sind daher nur in der Folge radikaler Maßnahmen seitens meines Webhosters zu erwarten. Und da immerhin besteht Hoffnung, zeigt sich ein Silberstreif am (Zeit-)Horizont. Laut Ankündigung auf der Homepage meines großen (Massen-)Providers wird dieser nämlich
... am Donnerstag, 05. März, zwischen 2 und 6 Uhr die Server mit den MySQL-Datenbanken aufrüsten. Deshalb kann es in diesem Zeitraum für weniger als eine Stunde zu einer eingeschränkten Erreichbarkeit Ihrer Datenbank(en) kommen. Die Sicherheit Ihrer Daten ist dabei jederzeit gewährleistet. Nach dem Abschluss der Arbeiten werden Ihre Datenbanken wie gewohnt zur Verfügung stehen. |
Auch wenn leider keine Details genannt werden, »aufrüsten« klingt zumindest nach Performance-Steigerung (auch wenn diese langfristig durch Kundenzuwachs wieder aufgefressen werden und sich die Aufrüstungs-Spirale deshalb munter weiterdrehen dürfte). Also warten wir mal den nächsten Donnerstag ab, und mit etwas Glück ist dann das Blättern in zonebattler’s homezone wieder ein im Wortsinne kurzweiliges Vergnügen...
[1] sog. SQL-Queries
[2] Der WP Widget Cache puffert fast alle Elemente der rechterhand gelegenen Seitenleiste und aktualisiert diese nur einmal täglich durch tatsächliche Datenbank-Abfragen.
[3] Übergangshalber lasse ich derzeit in einer Fußzeile ganz unten die Zahl der Queries und die zu ihrer Abarbeitung benötigte Zeit leidlich dezent anzeigen.
[4] werktags (außer Sa), nicht 24.12., 31.12.
Ein weitaus größerer Geschwindigkeitsgewinn ließe sich allerdings dadurch erreichen, daß Du die Anzahl der Artikel reduzierst, die jeweils auf der Startseite angezeigt werden.
#1
Womit Du sicher nicht ganz unrecht hast. Gleichwohl lege ich Wert auf sofort erkennbare thematische Vielfalt auf der Einstiegsseite und daher belasse ich es einstweilen beim runden Dutzend...
#2
Das Kategorien-Widget ändert ja seinen Inhalt eher selten, gehört daher zu den gecachten und wird bewußt nur einmal täglich kurz nach Mitternacht neu eingelesen. Überhaupt sind in der Seitenleiste nur noch das Meta-Widget, die Anlistungen der letzten Artikel (»Frisch auf den Tisch«) und Kommentare (»Süßer und scharfer Senf«) sowie das Suchfeld ungepuffert, die anderen 10 Widgets werden vom oben genannten WP Widget Cache-Plugin ohne Datenbank-Queries direkt beliefert.
#3
Ich weiß nicht, ob es viel bringt, aber Du könntest das Widget, das Deine Kategorien auflistet und dazu auch immer Datenbankabfragen ausführt, durch ein Text-Widget mit direkten Links zu den Kategorien ersetzen.
#4
@zonebattler:
Das ist nachvollziehbar. Aber reduzier doch einfach mal probeweise die Zahl auf 5 oder 6. Ich vermute, daß der Geschwindigkeitsgewinn so groß sein wird, daß Du gar nicht mehr nach anderen Quellen suchen wirst ...
#5
Gesagt, getan. Interessanterweise ändert die Halbierung der pro Seite angezeigten Artikel von 12 auf 6 weder etwas an der Zahl der Queries (27) noch an der Bearbeitungsdauer (derzeit zwischen 4 und 5 Sekunden). Der Aufruf eines einzelnen Artikels besteht dagegen stets aus 33 Queries, wobei die Wartezeit mit der Zahl der Kommentare ansteigt. Trauriger Spitzenreiter ist der Diskussionsstrang über die geplante »Neue Mitte« Fürths mit derzeit 215 Kommentaren: da braucht es trotz aller Cacherei momentan quälende 15–20 Sekunden, bis die Seite zusammengestellt ist. So richtig lustig ist das nicht...
#6
An das Caching der Widgets habe ich bei meinem Vorschlag gar nicht gedacht – so etwas Flottes gibt’s in meiner ollen Maschine nämlich nicht ;-)
#7
Hmpf. Es ist Donnerstag, es ist nach 6:00 Uhr, einen Geschwindigkeitszuwachs kann ich indes aber leider nicht feststellen. Und im Datenbank-Backend meines Providers ist mit phpMyAdmin 2.6.4‑pl3 immer noch eine recht angegraute Version installiert...
#8
Seit heute freilich scheint irgendwo eine virtuelle Handbremse gelockert worden zu sein: Teilweise bauen sich meine Blogseiten jetzt in weniger als drei Sekunden auf, selten braucht eine mehr als deren vier. Ist natürlich weiterhin alles andere als rekordverdächtig, aber immerhin deutlich spürbar flüssiger als vorher und allemal akzeptabel!
#9
So, jetzt habe ich doch noch den großen Vorschlaghammer ausgepackt: Seit gestern abend ist hier das Plugin WP Super Cache im Einsatz, welches jegliche Seitenaufrufe für einen definierbaren Zeitraum komplett zwischenpuffert. Wer also als erste(r) hier eine Seite aufruft, muß ein paar Sekunden warten, bis diese aus den dazu erforderlichen Datenbankabfragen dynamisch generiert ist. Alle weiteren Aufrufe dieser nämlichen Seite werden dann aus dem Cache ohne Datenbank-Abfrage mit einem statischen Schnappschuß bedient, was in Sekundenbruchteilen geschieht und mithin erheblich schneller flutscht. Nach Ablauf des »Verfalldatums« (ich habe derzeit testhalber eine Stunde Haltezeit eingestellt) führt ein erneutes Anklicken dieser Seite zur kompletten Neuerstellung (und damit auch wieder zum Auffrischen der gepufferten Fassung). Der kleinen Statistik ganz unten im Seitenfuß kann man entnehmen, wann die angezeigte Seite tatsächlich frisch generiert worden ist.
Die Arbeitsweise eines solchen Caches ist einigermaßen komplex, scheint sich aber nicht mit anderen Plugins und den von mir verwendeten Statistik-Tools zu beißen. Auf Benutzerseite sollte sich der Geschwindigkeitszuwachs zumindest auf den vielbesuchten Seiten deutlich bemerkbar machen. Wer sich natürlich auf Entdeckungstour macht und ältere Artikel einzeln aufruft, muß für dieses Wandeln auf unausgetretenen Pfaden doch wieder ein paar Sekunden Wartezeit pro Schritt einplanen. Aber ich denke, das ist es wert!
Wenn sich das praktische Plugin auch dann angemessen anständig verhält, wenn neu erscheinende Artikel oder frisch abgegebene Kommentare zusätzliche Inhalte einbringen (die sollten ja nicht bis zum turnunsmäßigen Refreshen unterdrückt werden), dann werde ich das Tool weiterhin verwenden. Schau’n wir mal...
#10
Nachdem ich mir gestern beim allerorten hochgelobten Webhoster all-inkl.com einen kostenlosen Test-Account zugelegt habe, kann ich nach einer experimentellen Datenbank-Transplantation bestätigen, daß mein Blog da mindestens doppelt so schnell flutschen würde und im vergleichbaren Paket-Preis sogar noch weit mehr an Speicherplatz und überdies unbegrenzter Traffic enthalten wäre. Einerseits.
Andererseits wäre manches dort strukturell anders gelöst (Domain- und Ordner-Hierarchien, Verwaltungstools, Web-Mailer), und ob sich nach den erforderlichen Konfigurations-Orgien hinterher ein höheres Maß an Zufriedenheit einstellte, ist mir als Gewohnheitstier nicht in jeder Hinsicht klar. Zumal man ja fast nie alle latenten Fußangeln vorhersehen kann. Eine gewisse Zitterpartie befürchtete ich zudem beim Übergang meiner Domains von einem zum anderen Anbieter, ähnlich wie beim Wechsel von Telekommunikations-Dienstleistern kann man da zwischen »hat tadellos geklappt« und »geriet zum wochenlangen Albtraum« offenbar alle Abstufungen erleben.
Wie auch anderswo im Leben wagt man als vorsichtiger Zeitgenosse und gebranntes Kind den Wechsel meist erst dann, wenn der Leidensdruck zu hoch geworden ist. Just jener scheint derzeit aber eher im Sinken begriffen zu sein: Heute hatte ich kaum einen Seitenaufruf zu verzeichnen, der länger als fünf Sekunden gedauert hätte. Die meisten Seiten standen in 3,x Sekunden, eine ganze Anzahl (vor allem in den Morgenstunden) sogar in nur 2,x Sekunden vollständig auf dem Schirm.
Damit kann man leben, zumal dann, wenn die nächste Vertragsverlängerung (nebst Vorauszahlung) für ein halbes Jahr ohnehin vor der Tür steht und der Wechsel jetzt und gleich zur doppelten Miete für sechs Monate führen würde. Daher beobachte ich das Antwortzeitverhalten noch eine Weile, lasse mich vielleicht sogar zu einem konstruktiven Kundenbrief an meinen bisherigen Hoster inspirieren: Bevor ich mit den Füßen abstimme, soll er noch eine Chance bekommen!
#11
Heute morgen bin ich zufällig dahintergekommen, daß ich im Konfigurations-Backend meines Webhosters Strato die verwendete PHP-Version von 4.nochwas auf 5.x.y.z umschalten kann. Die zarte Hoffnung auf spürbaren Geschwindigkeitszuwachs per Knopfdruck wurde aber jäh enttäuscht, denn auf einmal ging nämlich gar nichts mehr: Meine Datenbank schien zerschossen, der Ordner »uploads« mit all’ den persönlichen Dateien und auch den Fotos drinnen war auf einmal leer...
Sehr dumme Sache das, aber der zonebattler ist ja
paranoidprofessionell genug, um nie ohne Netz und doppelten Boden zu arbeiten: Nach wenigen Minuten waren erstens eine neue Datenbank angelegt, zweitens die vor dem Experiment per MySQLDumper angelegte DB-Sicherung zurückgespielt und drittens die statischen WordPress-Dateien per FTP in einen frischen Blog-Ordner hochgeladen. Die paar tausend Bilder brauchten am Schluß etwas länger, aber der status quo ante war nach ca. einer Stunde doch vollständig wieder hergestellt und das Blog lief wieder, wenn auch so zäh wie vorher.Jetzt aber habe ich eine andere Methode ausprobiert, die PHP-Dateien meines Blogs durch die neuere Version dieser Skriptsprache interpretieren zu lassen. Und siehe, es geht, und das spürbar schneller! Eine einzige Zeile in einer einzigen Datei geändert, und schon flutscht es hier wie nie zuvor. Sicher, es ist immer noch nicht ganz so flott wie man sich es idealerweise vorstellen würde, aber es ist deutlich, ganz deutlich besser geworden! Mal schauen, ob das auf Dauer so bleibt, dann wäre ich wohl tatsächlich halbwegs zufrieden mit der Performance...
#12
Endlich kann ich hier und heute Entwarnung geben. Daß ich das noch erleben darf!
#13