Mrz 252011
 

In einigen früheren Artikeln haben wir festgestellt, dass die Datenbankanbindung keinen großen Einfluss auf die Geschwindigkeit einer TYPO3-Seite haben:

TYPO3 Tuning

TYPO3 MySQL 5.5

Trotzdem kann es sinnvoll sein, auch aus der Datenbank möglichst viel Performance heraus zu holen. Auf Webservern auf denen sich viele Anwendungen eine Datenbank teilen, können langsame Datenbankabfragen andere Anwendungen ausbremsen und die Serverlast nach oben treiben.
Auf großen Installationen, bei denen viel Aufwand in die Hardware und Optimierungen der Seite gesteckt wird, lohnt sich auch der relativ kleine Geschwindigkeitsvorteil einer optimal angebundenen Datenbank. Vor allem da der Optimierungsaufwand sich in grenzen hält.

1) Serverseitige Optimierungen

Es ist sehr schwer allgemeine Tipps für die optimalen Einstellungen einer Datenbank zu geben. Zu viel hängt von den Gegebenheiten, wie der Serverhardware, der Installierten Software, der Netzwerkinfrastruktur, und speziell bei TYPO3 auch der verwendeten Extensions ab.
Gute allgemeine Hinweise gibt es unter http://wiki.typo3.org/Performance_tuning

Grundsätzlich gilt, dass TYPO3 jenseits der Standarteinstellungen von TYPO3 von einigen Werten profitieren kann. Für einige größere Datenbankabfragen muss MySQL temporäre Tabellen erzeugen. Reicht der vorgesehene Arbeitsspeicher für die Tabelle nicht aus, muss diese auf die vergleichsweise langsame Festplatte geschrieben werden.

:sql:show global status like ‚%Created_tmp_%‘;
Created_tmp_disk_tables 575092
Created_tmp_tables      1758200

zeigt auf einem Server mit vielen Typo3-Installationen, dass fast die Hälfte aller temporären Tabellen auf die Festplatten geschrieben werden müssen.

Auf einem Debian/Ubuntu System zeigte

:sql:SHOW VARIABLES LIKE ‚%tmp_table_size%‘;

dass 16 MB Speicher vorgesehen sind. Um den Wert zu erhöhen lassen sich in der my.cnf die Zeilen

:sql:tmp_table_size = 128M
max_heap_table_size = 128M

eintragen. Mit 128 MB drücken wir das Verhältnis auf 1 zu 10.

:sql:show global status like ‚%Created_tmp_%‘;
Created_tmp_disk_tables  997
Created_tmp_tables       11728

Sehr wichtig ist auch zu prüfen, wie viele Verbindungen auf einem System gleichzeitig erfolgen können.

Zur Laufzeit lässt sich anzeigen, wie viele Verbindungen bisher maximal verwendet wurden.

:sql:show global status like ‚%Max_used_connections%‘;

Standard für das erlaubt Maximum ist:

:sql:max_connections=100

Der Wert ist deshalb wichtig, weil die Anzahl der Verbindungen multipliziert mit dem möglichen RAM den eine Verbindung für sich beansprucht einen Richtwert abgibt wie viel RAM die Datenbank benötigt.

Eine gute Abschätzung liefert die Formel

:sql:key_buffer_size + (sort_buffer_size + read_buffer_size)*max_connections

2) Datenbank schlank halten

Es gibt zwei Tabellen die eine größere TYPO3-Installation gerne verlangsamen. Das ist einmal die index_rel der indizierten Suche und die Tabelle sys_log

Auf vielen Seiten findet sich der Tipp die indizierte Suche zu deaktivieren. Klar gilt auch hier wie bei allen anderen Erweiterungen, dass man sie nur nutzen sollte wenn man sie braucht. Wer eine indizierte Suche auf der Seite anbieten möchte sollte die Bereich der Seite klug wählen, um den index klein zu halten
Die Marker

:html:<!–TYPO3SEARCH_begin–>
<!–TYPO3SEARCH_end–>

im Template bestimmen den indizierten Bereich.

Auf einem Produktivsystem sollte so wenig wie möglich geloggt werden.

Diese Einstellungen in der localconf verhindern, dass die sys_log Tabelle groß wird.

$TYPO3_CONF_VARS['SYS']['enableDeprecationLog'] = '0';
$TYPO3_CONF_VARS['SYS']['syslogErrorReporting'] = '0';
$TYPO3_CONF_VARS['SYS']['belogErrorReporting'] = '0';
$TYPO3_CONF_VARS['BE']['versionNumberInFilename'] = '0';

Auch wenn das Thema Datenbanktuning hier nur ganz kurz angerissen werden kann. Mit einigen kleinen Änderungen lässt sich die Datenbankanbindung einer TYPO3-Seite schon recht gut optimieren. Wir haben maximal 10% Geschwindigkeitsvorteil messen können. Auch wenn der Seitenaufbau damit nicht signifikant beschleunigt wird, lohnt sich doch der Aufwand, der in der Änderung weniger Zeilen in den Konfigurationsdateien besteht.

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Pflichtfeld)

(Pflichtfeld)

© 2017 LAMP solutions GmbH