Beruflich Dokumente
Kultur Dokumente
In diesem Beitrag zur "Magento Performance" liegt der Schwerpunkt auf dem Tuning von
MySQL-Server, um es optimal für Magento Website. MySQL ist der höchst potentielle
Bereich für die Optimierung. Die Optimierung der Konfiguration, kann zu guten
Leistungssteigerung führen.
Es gibt verschiedene Konfigurationen, die betrachtet werden sollten.
Arbeitsspeicher (Memory)
Magento nutzt als Speicher-Engine die InnoDB, welche Memory-Pools verwendet um
Tabellen-Daten zu zwischen zu speichern (Cache), Indizes um den Zugriff auf den
Festspeichern zu reduzieren. Weniger Festplatten zugriffe bedeutet einen schnelleren
Zugriff auf Daten, Indizes etc.
Der Schlüssel ist, um so viel Speicher wie möglich für In-Memory-Cache zuweisen.
Standardmäßig ist dieser Wert 8MB, was sehr klein ist. Dieser Wert kann durch Einstellung
der Variable innodb_buffer_pool_size in der my.cnf erhöht werden.
Auf gängigen Servern mit Web- und Datenbank-Server mit 1 GB Arbeitsspeicher (RAM)
sollte der Wert auf 256 MB oder gar 512 MB eingestellt werden. Wenn der Server allein als
Datenbank-Server verwendet wird, sollte der Wert nicht weniger als 512 MB betragen.
Multithreading
Die InnoDB kann mehrere Prozessorkerne verwenden, um gleichzeitige Verbindungen zu
eröffnen. Das ist der Schlüssel um diese Funktion zu nutzen, um gleichzeitige
Verbindungen zu steigern. Dies kann durch die Konfiguration der Variablen
innodb_thread_concurrency und thread_cache_size erreicht werden.
Magento empfiehlt eine Berechnung des Wertes innodb_thread_concurrency mit der Formel:
2 x [Anzahl der Kerne/Prozessoren] + 2
Also auf einem Server mit 4 Kernen sollte der Wert 10 sein. Das erlaubt es einen Client-
Thread zwischen zu speichern (Cache). So dass ein anderer Client den Cache nutzt, auch
wenn der erste Client schon getrennt ist. Dieser Wert kann ebenfalls konfiguriert werden,
doch sein Wert hängt von max_connections ab. Diese Einstellung ist so aufwändig, dass
Gutachten und Benchmarks erstellen müssen.