Software

Bessere Performance mit TYPO3: Frisiert und aufgebohrt

Seite 3 / 4

CONFIG
httpd.conf:
HostnameLookups Off

Listing 9

Schließlich
kann die Server-Ausgabe mit mod_gzip bzw. mod_deflate komprimiert
werden. Das hilft vor allem, wenn die Netzwerkverbindung den
Flaschenhals darstellt.

Eine Alternative zu Apache stellt
lighttpd unter Verwendung der FastCGI-Schnittstelle [8] dar. Beim
Ausliefern von statischen Daten übertrifft lighttpd Apache bei
weitem. Wir verglichen für unsere Zwecke lighttpd+FastCGI+PHP
mit Apache1.3+mod_php. Lighttpd war etwa 15 Prozent langsamer als
Apache, obwohl wir aufgrund anders lautender Berichte das Gegenteil
erwartet hatten. Möglicherweise lag es daran, dass wir TYPO3
verwendeten und nicht einfach nur phpinfo() ausgeben ließen. In
Sachen Serverlast war allerdings lighttpd der Genügsamere. Nur
vier FastCGI-Prozesse schafften fast den gleichen Durchsatz wie
Apache 1.3, bei einem sichtbar geringeren Ressourcenverbrauch. In
bestimmten Umgebungen scheint lighttpd aufgrund seines schlanken
Designs, eingängiger Konfiguration und Skalierbarkeit eine gute
Wahl zu sein, zum Beispiel durch die Aufteilung von FastCGI-Prozessen
auf mehrere Rechner und integrierte Lastverteilung. Es empfiehlt
sich, vor einer Entscheidung die jeweiligen Konfigurationen ausgiebig
zu testen.

Was gibt es in Sachen Webserver zu
resümieren? Passen Sie MaxClients an, um ein Gleichgewicht
zwischen Datendurchsatz und Serverlast zu finden. Ein zurückhaltender
Startwert ist 32, der im Lauf der Optimierung wieder gesteigert
werden kann. Werfen Sie einen Blick auf lighttpd, wenn Sie schlanke
Software mögen und ohne die Module und den Support leben können,
den Apache bietet. Da wir hauptsächlich mit wenigen, aber
aufwändigen, dynamischen Seitenanfragen zu tun haben, steigern
Änderungen an der Webserver-Konfiguration unsere Performance nur
geringfügig. Weitere Details zum Thema Apache-Performance gibt
es unter [9] und [10].

PHP

Der nächste Kandidat für die
Optimierung war PHP – ein äußerst geeigneter Kandidat,
wie der folgende Abschnitt zeigen wird. Tatsächlich war die
Optimierung von PHP ebenso trivial wie effektiv. Die einfache
Installation eines PHP-Beschleunigers wie eAccelerator oder Zend
Optimizer als PHP-Modul brachte gewaltige
Geschwindigkeitssteigerungen. Unsere Wahl fiel auf eAccelerator [11], weil es kostenlose GPL-Software ist, welche die Konkurrenz
nicht scheuen muss.

Zum besseren Verständnis soll die
grundsätzliche Funktionsweise von eAccelerator hier kurz
erläutert werden. Die Software besitzt zwei Hauptkomponenten,
welche die Ausführung von PHP beschleunigen: Code-Optimierung
und Caching. Zunächst analysiert eAccelerator den kompilierten
Bytecode und versucht anschließend, ihn für eine höhere
Geschwindigkeit zu optimieren. Danach wird der Code als Objekt im
shared memory und/oder auf der Festplatte zwischengespeichert. Ist
dies erstmal geschehen, braucht es weitaus weniger Rechenprozesse
(und somit Zeit), um den Code auszuführen. Angesichts der Menge
an Code in TYPO3 ist es leicht zu verstehen, warum eAccelerator einen
enormen Performance-Zuwachs bringt.

Wir installierten eAccelerator und
aktivierten ihn in der zentralen PHP-Konfigurationsdatei:

CONFIG
php.ini:
eaccelerator.enable = 1

Listing 10

Das Ergebnis
des anschließend durchgeführten Tests war deutlich. Die
Optimierung und das Caching des Codes ergaben 21 Req/s für den
„FC Bigfeet“ – die fünffache Performance. Der
Vollständigkeit halber wollten wir den Speicherbedarf von
eAccelerator untersuchen. Das Ziel war, eine Grundregel für
TYPO3 zu finden. Ein von eAccelerator mitgeliefertes
Statistik-Werkzeug (eaccelerator.php) lieferte uns die gewünschten
Werte: Das Frontend von „FC Bigfeet“ brauchte etwa 8 MB, das
Backend zusätzliche 18 MB Speicher. Nach weiteren Tests mit
anderen Websites konnten wir einige Grundregeln formulieren:

  1. Je
    mehr Extensions eingesetzt werden, desto mehr Speicher wird
    benötigt.
  2. Für
    eine durchschnittliche Website kann ein Minimalwert von 32 MB
    angenommen werden ( in der Datei php.ini: „eaccelerator.shm_size
    = „32““).
  3. Bei
    mehr als einer Website kann der Speicherbedarf minimiert werden,
    indem für alle Websites dasselbe Quellverzeichnis (typo3_src)
    genutzt wird – ein Muss für Server, die viele Websites
    hosten!
  4. Um
    das Potential von Servern mit sehr wenig Speicher voll
    auszuschöpfen, können selten gebrauchte Objekte durch
    kleine TTL-Werte aus dem Speicher entfernen werden (in der Datei
    php.ini: „eaccelerator.shm_ttl
    = „1800““).

Etwas
rigoroser ist es, eAccelerator für das Backend ganz
auszuschalten, mit folgender Konfiguration:

CONFIG
./typo3/.htaccess
php_flag eaccelerator.enable 0

Listing 11

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

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

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung