Performance

Ende September, am „Wer wird Millionär?“-Montagabend, den 28.9., um genau zu sein, kamen plötzlich sehr viele nach „we all came out to montreux on the lake geneva shoreline“ (oder Teilen davon) Suchenden auf einen meiner Montreux-Reiseberichte1, weil diese Zeilen Thema einer Frage waren. Viele hatten aber das Pech, dass mein Shared-Hosting-Paket diese Last nicht mitgemacht hat.

Es gab 230 Zugriffe von 180 verschiedenen IPs, davon waren 66 erfolgreich und 164 fehlerhaft („500 Internal Server Error“) – das sind fast 75% Fehler. Bis auf ein paar Nachzügler kamen alle in den 100 Sekunden zwischen 20:53:11 und 20:54:50 mit einer Häufung vor 20:54, wie man in dieser Grafik sieht (jeder Strich steht für die Zugriffe in einer Sekunde) – danach hatte der Server erstmal gar keine Lust:

montreux-zeiten

Die Spitzen liegen bei 7 erfolgreichen Aufrufen (grün) um 20:53:45 und 20:53:54 mit 13 Fehlern (rot). So durcheinander, wie die Zeiten im Log standen, muss die Wartezeit bis zum Ergebnis oder der Fehlerseite ziemlich geschwankt haben; vermutlich kamen die Anfragen bei den meisten Fehlern deutlich früher, als sie in der Grafik stehen, sodass diese keine exakte Verteilung des Besucherinteresses widerspiegelt.

Solche Häufungen dürften zwar sehr selten vorkommen2 – selbst damals bei den Uri-Geller-Sendungen waren die vielen Zugriffe auf wesentlich größere Zeiträume verteilt –, aber dennoch mache ich mir Gedanken, wie sich mein Blog beschleunigen lässt.3

Ich bin schon (so langsam, wie sich Zeit und Lust eben vereinbaren lassen) dabei, andernorts4 zu experimentieren, wie ich hier sinnvoll WP Super Cache einbauen kann und trotzdem nicht auf meine geliebten direkt sichtbaren (im Gegensatz zu den später aus den Logs herauszulesenden) Suchanfragen und Statistiken verzichten muss. :)

Oder kann jemand ein anderes Cache-Plugin empfehlen, oder hat generell Tips dazu?

Und mit dem PHP ist das auch so eine Sache: all-inkl5, mein Hoster, bietet (auf diesem Server zumindest) entweder standardmäßig PHP4 als Apache-Handler oder PHP5 als CGI-Modul an mit dem Hinweis

Bitte beachten Sie, dass bei PHP-CGI strengere Restriktionen für Ressourcen gelten.

Irgendwann, ich glaube zum WordPress-2.8.0-Update, habe ich auf PHP5 umgeschaltet. Vorteil: die automatische Sommerzeitumschaltung, und es ist „irgendwie moderner“; Nachteil: WP Database Backup schien sich öfter an einer (unnötig riesigen Statistik-) Tabelle zu verschlucken. Ich frage mich nun, ob die WWM-Zugriffsspitze nicht mit dem normalen PHP4 besser gelaufen wäre – was meinen die Experten dazu?

Nun ja, mal sehen.6

Wie dem auch sei: Wenn wir schon bei statistischen Gedanken sind, schauen wir uns doch auch mal an, welche Suchmaschinen, Browser und Betriebssysteme die 172 eindeutigen Zugreifer (ohne die Nachzügler) denn so verwendeten:

wwm-se

Tja, Microsoft, wenn ihr meine Montreux-Seite nicht in Bing ausliefert, dürft ihr euch nicht wundern, wenn ihr hier nicht auftaucht. :P

wwm-ua wwm-os

 


  1. der übrigens nicht mal den richtigen Text liefert, weil ich den eben passend zum Bericht abgewandelt habe []
  2. der Crawler des „chinesische Google“ Baidu.com war auch so ein Nerv-Kandidat: immer wieder kam der von ein paar dutzend IPs fast gleichzeitig – bis ich ihn gesperrt habe; Besucher liefert er mir jedenfalls so gut wie nie []
  3. Einzelne Punkte verbessere ich eh immer wieder, etwa die gemeinsame Abfrage der Kommentar-Anzahl pro Kommentator bei jedem Kommentar, denn bei den vielkommentierten Seiten (z.B. der ersten zu dieser Möchtegern-Wahrsagerin) hat man richtig mitverfolgen können, wie die Seite sich aufgebaut hat…; wer Details dazu wissen will – denn manchen hab ich die einfache Datenbank-Abfrage ja auch weitererzählt –, einfach Bescheid sagen. []
  4. ja, bei meinem „Esoterik-Shop“ agyon.de []
  5. Partner-Link []
  6. Waren das jetzt eigentlich zu viele Fußnoten? ;) []

7 Kommentare

  1. K

    Ich glaube, subjektiv, aber mit einigermaßen Sicherheit wird du das mit der Performance mit dem Apache Benchmark-Tool „ab“ testen können (vergleiche hierzu http://httpd.apache.org/docs/2.0/programs/ab.html).

    Da würde ich dann einfach mal ein paar konkurrierende Zugriffe auf eine URL simulieren lassen und dann mal sehen, was die Statistik so hergibt.

    Falls ich dir dabei helfen kann, kann ich gerne mal über einen Server mit Gigabit-Anbindung einen solchen Benchmark (mehrfach) auf eine URL deiner Wahl machen (am einfachsten mal per Mail koordinieren)… dann kann man mal den Unterschied zwischen php4 und php5 „messen“.

    • c

      Danke für den Tip und das Angebot; könnte man bei Gelegenheit mal testen – wenn’s denn keine Argumente gegen den Schritt zurück zu PHP4 gibt. :)

      • K

        Nunja, das müsstest mal in nem ruhigen Moment austesten, ob das Blog bzw. die Plugins alle mit PHP4 noch funktionieren… das wäre natürlich die Grundvoraussetzung :-)

        Aber sowas kann man ja gottseidank austesten…

  2. i

    Vielleicht ist es ein Argument, den Provider zu wechseln. ;)
    Auch auf einem Shared Space, sollten diese Trafficspitzen locker abgefangen werden. Es ist ja nur die Frage, wieviele Ressourcen jedem der Shared Spaces zur Verfügung stehen.
    Ich kenne Server, wo wesentlich höhere Belastungen einfach bedient werden, ohne dass die Performance darunter leidet, oder gar 500er Fehler kommen.

  3. r

    (7) nö, wieso?

Schreib einen Kommentar

Alle Angaben sind freiwillig. Die E-Mail-Adresse wird nicht veröffentlicht oder weitergegeben.

  • Moderation: Wer zum ersten Mal kommentiert, dessen Kommentar muss manuell von mir freigeschaltet werden.
  • Benimm dich! Keine Beleidigungen, keine rechtswidrigen Inhalte u.s.w.! Sollte eigentlich selbst­verständlich sein, oder...?
  • Webseite: Nichts gegen Blogs mit Werbung, aber rein kommerzielle Links sind unerwünscht und werden gelöscht. Reine Spam-Kommentare natürlich auch.
  • E-Mail-Benachrichtigung bei neuen Kommentaren: Diese Funktion musst du über eine beim ersten Mal verschickte Bestätigungs-Mail freischalten. Diese Benachrichtigungen können mit dem auch in jeder Mail enthaltenen Link auch wieder deaktiviert werden.
  • Twitter: Wenn du einen Twitter-Account hast, kannst du im entsprechenden Feld deinen Twitter-Namen eingeben (egal ob mit oder ohne dem @), der dann bei allen (auch älteren) Kommentaren, die dieselbe E-Mail-Adresse enthalten, angezeigt wird. (Heißt auch: das E-Mail-Adressfeld muss auch ausgefüllt sein.)
  • Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <sub> <sup> <big> <small> <u>