| Weitere Artikel aus dem Webentwickler Blog |
| Teilen |
Content Management Systeme - Typo3 - Tipps & Tricks
Die Performance von TYPO3 steigern - Teil II
Das Performance Tuning von Webservern ist eine komplexe Angelegenheit, die für sich ganze Bücher füllt. Das Grundproblem von TYPO3-Seiten ist aber meist das Gleiche: Da das Gesamtsystem aus PHP, TYPO3 und Datenbank höhere Speicheranforderungen stellt, kann es passieren, dass der Webserver selbst bereits mit relativ wenigen gleichzeitigen Anfragen an sein Limit kommt. In der Folge wird der Server langsam, im schlimmsten Fall instabil.
Das Performance Tuning von Webservern ist eine komplexe Angelegenheit, die für sich ganze Bücher füllt. Das Grundproblem von TYPO3-Seiten ist aber meist das Gleiche: Da das Gesamtsystem aus PHP, TYPO3 und Datenbank höhere Speicheranforderungen stellt, kann es passieren, dass der Webserver selbst bereits mit relativ wenigen gleichzeitigen Anfragen an sein Limit kommt. In der Folge wird der Server langsam, im schlimmsten Fall instabil.
1. Apache
1.1 MaxClients
Bei Apache hängt die Anzahl gleichzeitig erlaubter Anfragen vom eingesetzten Server-Modell ab. In der Prefork-Variante ohne Thread-Unterstützung steht der Wert standardmäßig auf 256. Bei der Worker-Variante mit Thread-Unterstützung errechnet sich der Wert aus der Anzahl erlaubter Kindprozesse (ServerLimit) und der Anzahl der Threads pro Kindprozess (ThreadsPerChild). Unter Linux ergibt sich daraus ein Wert von 400 (16×25), unter Windows dagegen nur 64 (1×64).
In allen Konfigurationen lässt sich mit der Direktive MaxClients die Grenze für Anfragen reduzieren. Welcher Wert richtig ist, hängt von den restlichen Systemparametern wie dem Speicherausbau und der Prozessorleistung ab. Er lässt sich daher nur durch Ausprobieren mithilfe von Lasttests ermitteln. Dabei sollte man sich von kleineren zu höheren Werten vorarbeiten.
1.2 .htaccess-Dateien ausschalten
In TYPO3 kommen an einigen Stellen .htaccess-Dateien zum Einsatz, etwa um die Rewrite-Regeln für realurl oder simulateStaticDocuments zu setzen. Das ist bequem und schnell anzupassen, verlangsamt aber den Webserver. Dieser muss nämlich beim Ausliefern einer Seite den gesamten Pfad nach .htaccess-Dateien durchsuchen und diese einzeln auswerten, um die gültige Konfiguration für ein Verzeichnis zu ermitteln.
Um das zu verhindern, kann man die Direktiven aus den einzelnen .htaccess-Dateien in die Konfigurationsdatei des Servers verlegen (httpd.conf bzw. httpd-vhosts.conf). Nun kann man die Verarbeitung der .htaccess-Dateien mit der Direktive AllowOverride None ausschalten.
Allerdings sollte man sich vergewissern, dass dies keine Nebeneffekte hat. So erzeugt beispielsweise die Extension nc_staticfilecache je nach Konfiguration selbständig .htaccess-Dateien. Dieser Mechanismus lässt sich dann natürlich nicht mehr benutzen.
1.3 Logfiles optimieren
Bei jeder Anfrage schreibt der Webserver Informationen in Logdateien, was natürlich Zeit und Leistung kostet. Daher sollte man auch dies auf das nötige Minimum beschränken. Für das Fehlerprotokoll steht der LogLevel standardmäßig auf warn, was eine sinnvolle Einstellung darstellt. Im Testbetrieb wird der Werte aber häufig zur Fehlersuche auf debug gesetzt. Eine kurze Kontrolle, ob dies rückgängig gemacht wurde, ist daher beim Übergang zum Live-Betrieb sinnvoll.




































