Mittwoch, den 12. September 2012 08:03 Alter: 5 Monat(e)
Kategorie: Tuning
Submitting your vote...
Rating: 4.5 von 5. 2 Stimme(n).
Artikel bewerten.

Cache Hitrate und Zugriffsstatistiken für TYPO3 Webseite hinter Varnish aufzeichnen

Für den Erfolg der Performance-Optimierung einer Webseite durch einen Caching Proxy wie Varnish spielt die Hitrate eine große Rolle.


Bei der Optimierung einzerner Elemente einer Webseite kann es nützlich sein zu wissen wie oft bestimmte Seiten aus dem Cache bedient werden können und wie oft die Inhalte aus dem Backend geholt werden müssen.
Um die Cache-Hitrate von Einzelseiten einer TYPO3-Installation komfortabel analysieren zu können zeigt eine kleine Erweiterung die Daten direkt im Backend an.

Installation


Nachdem es mir derzeit nicht gelingen will die Erweiterung ins TER hochzuladen, findet sie sich derzeit am Ende dieses Dokuments oder im Bereich Downloads.

Voraussetzungen für den Einsatz ist, dass alle Zugriffe mit dem varnishncsa Dienst in Logfiles protokolliert werden. Das tätsächliche Format des Logfiles ist flexibel. Wichtig ist, dass der Varnish  die Information ob ein Aufruf aus dem Cache, oder dem Backend bedient wurde (hit bzw. miss) im Logfile aufführt. In diesem Beispiel gehen wir davon aus, dass mit varnishnca-vhost das Logfile für den Einsatz für mehrere (sub)domains angepasst ist (siehe foobar.lamp-solutions.de/howtos/server-administration/server-tuning/3179/)
Das Logformat wird beim Start des Logdeamons bestimmt. Auf einem Ubuntu-Server geschieht dasin der Regel in der Datei /etc/init.de/varnishnca-vhost.

Die Zeile

  1. DAEMON_OPTS="-a -w ${LOGFILE} -D -- -P $PIDFILE -c -F"

muss dazu in
  1. LOG_FORMAT="%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" %{Varnish:hitmiss}x"
  2. DAEMON_OPTS="-a -w ${LOGFILE} -D -- -P $PIDFILE -F '${LOG_FORMAT}'"

geändert werden.

Scheduler einrichten


Damit die Daten im Backend angezeigt werden, muss das Logfile zuerst eingelesen und die enthaltene Information aufgearbeitet werden. Da dies bei großen Logfiles zeitintensiv sein kann, ist diese Aufgabe in einen Task für den eingebauten scheduler von TYPO3 ausgelagert. Der nötige Task wird von der Erweiterung mitgeliefert.

Sheduler für TYPO3


Zwei Informationen müssen bei der Einrichtung von Hand angegeben werden.

  1. Der Pfad zum Logfile
  2. die Domain der Webseite (z.B.: Baseurl von Realurl)

In der derzeitigen Version erkennt der Parser noch nicht welche Zeilen des Logfiles schon abgearbeitet wurden. Die Frequenz des Scheduler-Tasks sollte also so gewählt werden, dass die Statistik berechnet wird, direkt bevor der Server ein Logrotate durchführt.

Informationen auswerten
Die Informationen werden im Info Modul im Backend von TYPO3 aufgelistet.

Statistiken im Info Modul


Als kleines Nebenprodukt werden neben der Hitrate auch die Gesamtzahl der Hits und die Besuche Pro Seite angezeigt.

Ausblick:


Die gewonnenen Daten lassen sich noch erweitern um zusätzliche Informationen zu gewinnen. Geplant ist die Ergänzung der Statistiken um:
1) historische Entwicklung als Graph
2) Ladezeit der Seite bei einem Miss
3) Informationen für Datensätze einzelner Erweiterungen (News, Kalender, etc...)
 
Um Anregungen, Ergänzungen oder einfach Feature-Wünsche würde ich mich freuen.
 


keine Kommentare
Kommentar schreiben

* Bitte ausfüllen

*

*