Typo3 - Performance optimieren: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 43: Zeile 43:
 
Extensions können im Extension-Manager im Bereich „Install Extensions“ gelöscht werden, indem man auf den Namen der Extension klickt, oben aus dem Pulldown-Menü den Eintrag „Backup/Delete“ wählt und anschießend auf den Link „DELETE EXTENSION FROM SERVER“ klickt.
 
Extensions können im Extension-Manager im Bereich „Install Extensions“ gelöscht werden, indem man auf den Namen der Extension klickt, oben aus dem Pulldown-Menü den Eintrag „Backup/Delete“ wählt und anschießend auf den Link „DELETE EXTENSION FROM SERVER“ klickt.
  
== Indexed Search ==
+
=== Indexed Search ===
 
„indexed_search“ hat einen erheblichen Nachteil. Durch die Verwendung der Extensions sinkt die Performance bei steigenden Seitenzahlen nahezu exponentiell.  
 
„indexed_search“ hat einen erheblichen Nachteil. Durch die Verwendung der Extensions sinkt die Performance bei steigenden Seitenzahlen nahezu exponentiell.  
  

Version vom 19. Oktober 2017, 08:06 Uhr

http://t3n.de/magazin/23-tipps-tricks-schnelleres-typo3-typo3-turbo-edition-225282/3/

TYPO3 ist leider nicht besonders Performant im Vergleich vieler CMS. Aber man kann viel machen um das zu verbessern. Auf der anderen Seite MUSS man auch aufpassen, das es keine Performance Killer in der Installation gibt. Die Auswirkungen sind extrem z.B. wenn nicht gecachet wird.

Performance und Serverlast testen

einfache Tools

  • Rootkonsole: uptime (zeigt Serverauslastung an)
  • ApacheBench (simuliert Zugriffe ab -n 100 -c 10 http://www.IhreDomain.de/“. Dies simuliert 100 Zugriffe, davon jeweils 10 parallel );
  • YSlow Plugin für FF oder ähnliches
  • Google Webdeveloper Tools für den Check der Seite direkt (Requests, Bilder...)

Performance Killer Faktoren

  • USER_INT Objekte verhindern Browserseitiges Caching
  • indexed search

Fehler finden

Parsetime und Cachezustand von Seiten im Quelltext anzeigen: localconf.php (in /typo3conf)

$TYPO3_CONF_VARS['FE']['debug'] = '1';

Datenbank

Oft ein Engpass wenn es Slow Queries gibt. Die Server begrenzen die Zugriffe meist auf 25-35 parallel. Wenn man einmal an die Grenze kommt schaukelt sich das ganz schnell hoch. Was ist wichtig.

Alles utf-8 ?

  • Auch die Datenbank selbst sollte auf utf-8 stehen, nicht nur die Tabellen (CREATE DATABASE DEFAULT CHARACTER SET uft8)
  • Zur Vorsicht kann man TYPO3 zwingen: Install Tool:
[BE][forceCharset] = 'utf-8'
  • PHP zwingen nicht intern in ISO-8859-1 umzuwandeln (und zurück)
[SYS][setDBinit] ='SET NAMES utf8; SET SESSION character_set_server=utf8'; SET CHARACTER_SET utf8; 

Todo check ob SET SESSION character_set_server=utf8'; SET CHARACTER_SET utf8; das gleiche ist es gibt Angaben mit dem einen oder dem anderen

Keine Permanente Datenbankverbindung

Ist leider per default gesetzt. Also:

[SYS][no_pconnect] =1

setzen

Komprimierte Seitenübertragung einschalten

[BE][compressionLevel] = 5 und [FE][compressionLevel] = 5

Generierung der Seiten benötigt mehr Zeit, dafür schnellere Übertragung. Gut wenn das Caching funktioniert. Benötigt zlib auf dem Server (ist normalerweise dabei)

Extensions prüfen

Unbenutzte Extensions entfernen

Auch wenn sie nicht verwendet werden benötigen nicht genutzte Extensions wertvolle Rechenzeit. Es müssen Klassen geladen und initialisiert oder statische Templates geladen werden, die man gar nicht benötigt. Extensions können im Extension-Manager im Bereich „Install Extensions“ gelöscht werden, indem man auf den Namen der Extension klickt, oben aus dem Pulldown-Menü den Eintrag „Backup/Delete“ wählt und anschießend auf den Link „DELETE EXTENSION FROM SERVER“ klickt.

Indexed Search

„indexed_search“ hat einen erheblichen Nachteil. Durch die Verwendung der Extensions sinkt die Performance bei steigenden Seitenzahlen nahezu exponentiell.

Will man den selben (und sogar noch einen viel mächtigeren) Leistungsumfang verwenden, kommt man an „Apache Solr“ [3] nicht mehr vorbei. Wem ein geringerer Leistungsumfang reicht, kann „mnogosearch“ oder „joh_advbesearch“ verwenden.

Static File Cache

Typo3 erzeugt trotz Caching jedesmal einige Datenbank Anfragen

  • früher fl_staticfilecache
    • Problem -> kein idealer Code (x-classes, looping constructions), muß von Hand angestoßen werden, Modul
    • Gut -> über mod_rewrite um zu entscheiden ob statisch oder dynamisch (kein php, schnell)
  • wir müssen Cache Headers senden -> deshalb berauchen wir Seiten in Filesystem ?

Wir müssen Headers senden.

Rewrite Conditions:

Browser Cache

Typo3 den Browser mittels Header Information anweisen die Seite zu Cachen. config.sendCacheHeaders = 1

Die Cache Headers werden von Typo3 gesendet, wenn bestimmte Bedingungen erfüllt sind:

ToDo...

Server und Datenbank optimieren

http://wiki.typo3.org/index.php/Performance_tuning#Webserver_proxy_caching_or_static_file_caching

==

Typo3 - Welche Datenbanktabellen können gelöscht werden ?

(aus dem Forum...)

The answer more or less confirmed what I had listed myself in the german list. Thread in german list has the following Subject

  • [Typo3-german] Restore: ueberfluessige/unwichtige Tabellen*

Nice tip also to get around timeout when restoring database via PhpMyAdmin. --> *More Infos: * http://www.ozerov.de/bigdump

  • So you don't have to look (here the german answer):*

Alle Tabellen mit *cache_** kannst du ignorieren (solange die Tabellen an sich auf Maschine B vorhanden sind.

  • Sys_log *ist das Interne Logging von Typo3.

Zum Aufspüren von fehlern ganz praktisch - deine Entscheidung, ob du das mitnehmen willst.

  • Sys_history *ist die Änderungs-Verlauf der Objekte in Typo3 - auch hier

wieder deine Entscheidung

  • Sys_stat *ist der übliche Killer.

die Ext lohnt sich meiner Meinung nach nur dann, wenn man keinen Zugriff auf Webserver Logs hat. Oder der Kunde einfache Statistiken direkt im BE sehen möchte. Hierzu kann ich nur empfehlen, einmal pro Monat einen CRON Job laufen zu lassen (oder von Hand) der alle Datensätze exportiert, die älter als 2 Monate sind (mit mysqldump --where) und danach die exportierten Daten zu löschen. sys_stat wächst schnell auf zig Millionen Records an und lähmt damit die DB. Wir hatten vor 3 Wochen den Fall, dass sys_stat so groß war, dass wir es nicht mehr selected konnten, noch exportieren oder gar löschen. Blieb also nur der Weg "DB runterfahren, Datendatei löschen, DB hochfahren"