Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 4

Bessere Performance mit TYPO3: Frisiert und aufgebohrt

    Bessere Performance mit TYPO3: Frisiert und aufgebohrt

Idealerweise sollte die Performance einer Website so lange kein Thema sein, wie ihre Anwendung mit Hilfe von mehr und besserer Hardware skalierbar bleibt. Warum sich mit aufwändigen Optimierungsmaßnahmen herumärgern, wenn man das Problem auch einfach mit zusätzlicher Hardware lösen kann?

Fast alle großen dynamischen Websites, wie z. B. Wikipedia, Slashdot und ganz besonders Google, vertrauen in puncto Performance auf die ständige Verbesserung der Hardware. Aus der Sicht einer öffentlich finanzierten Einrichtung haben wir uns hingegen mit der Frage beschäftigt, ob man die Leistung von TYPO3 auch ohne finanzielle Investitionen verbessern kann. Im Fokus standen dabei die Antwortzeit und die Auslastung des Servers sowie die Suche nach dem effektivsten Mittel zur Optimierung. Das Ziel war, eine einfache und schnelle Lösung mit dem größtmöglichen Effekt zu finden.

Die Testumgebung

Der Weg zu einem optimierten System führt in der Regel über Testreihen, so genannte Benchmarks. Diese führten wir auf derzeit verbreiteter Hard- und Software durch: ein Athlon XP 2200 mit 1 GB RAM, gewissermaßen die Standard-Hardware im Shared- und Rootserver-Segment. Da wir die Wirkung unterschiedlicher Software-Versionen testen wollten, benutzten wir für unsere Tests die folgenden Plattformen:

  • GNU/Linux: Debian Sarge und Ubuntu Breezy, Linux-Kernel 2.4 und 2.6
  • MySQL 4.0 und 4.1
  • Apache 1.3 und 2.0, lighttpd 1.4.8
  • PHP4 und PHP5
  • TYPO3 3.8, Quickstart-Paket (FC Bigfeet)

Auch wenn wir bei den Tests Linux verwendet haben, gelten die meisten Empfehlungen auch für Windows.

Bei unseren Versuchen zur Verbesserung der Performance haben wir uns auf zwei Fragen konzentriert: Wie schnell werden gleichzeitige Anfragen bewältigt und wie groß ist dabei die Systemlast? Für diese Zwecke haben wir verschiedene Tools im Netz gefunden. Unser Favorit war das in den Apache Utilities enthaltene Apachebench, das dazu diente, den HTTP-Output von Websites zu messen [1].

Ausgangspunkt für unsere Testreihe war ein Worst-Case- Szenario: ein neu installierter Debian-Linux-Server mit einem standardmäßigen Apache 1.3 Webserver, einer MySQL-Datenbank, mod_php4 und einem jungfräulichen TYPO3 3.8 Quickstart-Paket mit ausgeschaltetem TYPO3-Caching. Zusätzlich benutzten wir einen zweiten Rechner als Client, der sich am selben 100-Mbit-Switch wie der Server befand.

Um einen Vergleichswert zu erhalten, bestand unser erster Test aus einer Anfrage nach einer 24 KB großen statischen Datei, also ohne Einbeziehung von MySQL, PHP und TYPO3. Auf diese Weise haben wir die Maximalleistung unseres Webservers ermittelt. Wir starteten Apachebench mit 1000 Anfragen, je 100 davon gleichzeitig.

SHELL

$ab -n 1000 -c 100 http://yourserver/static_file.txt

Listing 1

Die durchschnittliche Zeit für eine Anfrage betrug ca. 3 ms. Das bedeutet mehr als 300 gleichzeitige Anfragen pro Sekunde (300 Req/s). Im nächsten Schritt wendeten wir uns TYPO3 zu:

SHELL

$ab -n 1000 -c 100 http://yourserver/index.php?no_cache=1

Listing 2

Neben einem zeitweise nicht mehr erreichbarem System war das Ergebnis ein recht enttäuschender Wert von 4 Req/s – kein Vergleich zum statischen Test: Zeit für eine Optimierung.

Links und Literatur

  1. Apache HTTP Server Benchmarking Tool
  2. Linux Kernel-Vergleich: 2.6.4 vs. 2.4.25
  3. Kernel-Vergleich: Web-Serving auf 2.4 und 2.6
  4. BSD- und Linux-Benchmarking
  5. MySQL Optimierung
  6. A Practical Look at the MySQL…
  7. Lighttpd-Webserver
  8. FastCGI
  9. Hinweise zur Apache Performance
  10. Apache Performance-Tuning
  11. eAccelerator

Finde einen Job, den du liebst

Schreib den ersten Kommentar!

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen