TYPO3 Performance

50 Sprachen online kostenlos lernen - auch als APP

TYPO3 Performance - rausholen was geht

Das TYPO3-CMS ist an und für sich ein recht schnelles System, wenn man sich seinen Umfang und die Mächtigkeit der in ihm enthaltenen Module ansieht. Aber natürlich ist die endgültige Performance des Gesamtsystems vor allem von den gegebenen Voraussetzungen auf dem Server abhängig auf dem es installiert wurde.


Neben den großen Massenhostern haben sich inzwischen in Deutschland auch eine ganze Reihe von Hostern etabliert, die sich auf das Hosting von Typo3-Seiten spezialisiert haben und dadurch natürlich auch eine optmierte Ablaufumgebung zur Verfügung stellen. Bei diesem Dienstleistern kann man also davon ausgehen, eine für TYPO3 geeignete Umgebung vorzufinden. In der Regel sind diese Angebote aber auch etwas teurer.

Verfügbare Hosting-Modelle

Wie sieht es nun aber aus, wenn man seine Website bei einem "normalen" Hoster betreibt, bzw. wenn der Kunde bereits einen festen Vertrag besitzt? Im Bereich Webhosting kann man grundsätzlich zwischen 3 Arten von Verträgen unterscheiden:

  • Shared Web Hosting
    Dies ist der "Normalfall". Hier werden mehrere Websites auf einem gemeinsamen Server verwaltet. Sie teilen sich dadurch nicht nur den vorhandenen Speicherplatz, sondern eben auch die verfügbaren Ressourcen wie Hauptspeicher und Prozessorzeit. Die Performance der einzelnen Seiten ist hierdurch natürlich schlechter, als wenn die Website auf einem separaten Server residieren würde.
     
  • Dedicated Server
    In diesem Fall "mietet" der Kunde seinen eigenen Internetserver. Dies bedeutet, daß er frei in der Konfiguratioin des Rechners ist und sich so seine für ihn optimale Ablaufumgebung selbst gestalten kann. Die Verwaltung eines eigenen Servers ist jedoch - selbst wenn man das notwendige Fachwissen vorraussetzt - sehr zeitaufwendig und man ist natürlich auch für die Sicherheit des Systems selbst verantwortlich. Vorteil dieser Lösung ist, daß man sich in seinem Paket die verwendeten Hardwareressourcen selbst wählen kann und damit auch stark frequentierte Webseiten betreiben kann ohne Einbussen bei der Performance zu erleiden.
     
  • Managed Server
    Dies ist ein Spezialfall des "Dedicated Servers". Man betreibt seinen eigenen Internetserver und muss sich keine Ressourcen mit anderen teilen, jedoch kümmert sich der Hoster um die eigentliche Verwaltung und Wartung. Dies beinhaltet in der Regel Softwareupdates, Schutz vor Viren und anderen Schädlingen, Backups des Systems sowie umfassenden Support für den Kunden. Mananged Server stellen damit einen guten Kompromiss für performante und nicht zu pflegeaufwändige Websites dar.

Wir wollen uns in diesem kurzen Abschnitt lediglich mit dem "Normalfall" beschäftigen. Die Optimierung des Webservers sei also hier zunächst den Profis überlassen, da hier mehrere Systeme ineinanderspielen (MySQL, Apache, PHP) und sich hier auch schnell Wechselwirkungen bei einzelnen Optimierungsversuchen zeigen können.

"Tuning" TYPO3

Gut. An welchen Schrauben können wir nun drehen, um unser System zu optimieren ohne dabei auch in den Programmcode eingreifen zu müssen:

1. TYPO3-Caching-Mechanismen verwenden

Tests haben sehr eindrucksvoll die Effektivität der in TYPO3 verwendeten Caching-Mechanismen gezeigt. Je mehr Seiten man mittels der Option "no cache" davon ausschließt, umso deutlicher tritt ein Performanceverlust zu Tage. Dieser wird umso größer je inperformanter die Ablaufumgebung des Hosters ist. Bei großen Massenhostern, die teilweise dutzende Webseiten auf einem Server pflegen, kann die ständige dynamische Erzeugung der Seiten zu nicht mehr akzeptablen Antwortzeiten oder - im schlimmsten Falle - sogar zu serverseitigen Timeouts führen.

2. Menge der verwendeten Erweiterungen (Extensions)

So schöne Funktionalitäten sich auch über Extensions integrieren lassen, so erhöhen sie natürlich auch den Umfang des Systems. Dies trifft inbesondere auf Erweiterungen zu, die auf jeder Seite zum Einsatz kommen, wie etwa ein Newssystem. Alle diese Extensions bestehen aus einer mehr oder weniger großen Anzahl von PHP-Skripten, die bei Ihrer Ausführung natürlich Ressourcen wie Prozessorzeit und Speicher benötigen. Dies soll keineswegs bedeuten, daß man im Zweifelsfall auf bestimmte Erweiterungen (schon gar nicht auf ein Newssystem...) verzichten sollte, aber man sollte nicht unbedingt alles verwenden, was auch auch möglich ist.

3. Die Art der verwendeten Extensions

In jedem Fall sollten die verwendeten Erweiterungen aber auch über geeignete Caching-Mechanismen verfügen, um eine ständige Ausführung dieser zu vermeiden. Leider sind nicht alle Entwickler so sorgfältig in der Dokumentation ihrer Extensuions, so daß man sich oft nur auf Erfahrungsberichte oder Selbstversuche verlassen kann.

4. Serverseitiges Komprimieren von Seiten

Mit TYPO3 ist es möglich erzeugte Seiten komprimiert auf dem Server vorzuhalten und dann auch in komprimierter Form an den aufrufenden Browser zu übertragen. Vorteil dieser Lösung ist, daß die Übertragung der Seite selbst weniger Zeit in Anspruch nimmt, allerdings dauert die Generierung der Seite oftmals sehr viel länger. Um diese Option zu nutzen findet sich im TYPO3 Install-Tool die Option "[FE][compressionlevel]". Einen geeigneten Wert (ungleich 0) zu finden bedarf allerdings einigen Testaufwandes und ist stark von der vorhandenen Serverumgebung abhängig.

5. Externe CSS- und Javascript-Dateien

Die meisten Extensions betten ihren benötigten Code für Funktionalität und Optik direkt in die Ausgabeseite ein. Hierdurch wird oftmals der in TYPO3 verwendete Caching-Mechanismus ausgehebelt. Um dies zu verhindern, können diese Informationen in externe Dateien ausgelagert werden.

Für Javascript-Code fügt man hierzu die Direktive

config.removeDefaultJS = external

in das Template der Website ein.

Für den CSS-Code muss man etwas mehr händisch erledigen. Für alle verwendeten Extensions muss zunächst im Template der "Default Style" überschrieben werden, also zum Beispiel für die Extension "tx_srfeuserregister" mit folgender Anweisung:

plugin.tx_srfeuserregister_pi1._CSS_DEFAULT_STYLE =

Nun kann man den benötigten CSS-Code von Hand in das eigene, globale CSS-Dokument übertragen, so daß nur diese eine Datei geladen werden muss.

6. Extensions zur Verbesserung der Performance

Es existieren auch einige Erweiterungen, die sich direkt mit der Optimierung des Innenlebens von TYPO3 beschäftigen. Hauptangriffspunkte sind hier die unteren Anwendungsschichten zwischen TYPO3 und der Datenbank.  Aus (leidvoller) Erfahrung rät der Autor jedoch von der Verwendung dieser Extensions ab. Sie sind sehr stark auf die Verwendung bestimmter Versionen von TYPO3 zugeschnitten und auch lassen sich häufig Wechselwirkungen mit anderen Extensions nicht ausschließen. Weiterführende Probleme folgen natürlich auch bei einem Update des TYPO3-Systems selbst.

Eine Ausnahme stellt hier die Extension Static File Cache da. Diese stellt einen zusätzlichen Mechanismus zum cachen statischer HTML-Seiten zur Verfügung, der in der Praxis bei den meisten großen Hostern tadellos funktioniert.

Performance Multidomain TYPO3 - Mehrere Websites in einem TYPO3 verwalten

TYPO3 besitzt natürlich die Fähigkeit unterschiedliche Domains in einer Oberfläche zu verwalten. Aus praktischer Erfahrung hat dies alleine auch keinen großen Einfluss auf die Performance der verwalteten Seiten. Ausschlaggebend ist hier immer die zur Verfügung stehende Server-Hardware sowie deren Konfiguration. Installationen mit 10 Domains in einem TYPO3 sind aus langjähriger Erfahrung heraus kein großes technisches Problem. Hier stellen sich erst schwierigere Fragen, wenn es organisatorische Details wie Backup und domainübergreifende Kommunikation (z.B. ein Newssystem für alle Domains) geht.

Multidomain-Installationen müssen allerdings penibler geplant werden - insbesondere, wenn das Benutzerkonzept daran angepasst sein soll. Ohne Programmierkenntnisse kommt man auch bei der Konfiguration von realurl für Multidomain nicht mehr weiter.