Abstract: Server-Optimierung für CMS & Co. wird meist aus Unkenntnis oder aus falscher Sparsamkeit übersehen. Für den Betrieb einer Website mit einem Content Management System, einem Shop oder für eine Groupware gelten jedoch grundlegend andere Kriterien als für den Betrieb einer normalen Website.
Der Artikel beschreibt die Problemstellung und nennt einige Abhilfe-Massnahmen.
Content Management Systeme, Shops und ähnliche Software werden mit einem Datenbanksystem, meist MySQL betrieben, als Abfragesprache fungiert üblicherweise PHP, während als Webserver überwiegend Apache eingesetzt wird. Hier sollte der erste Ansatz zur Optimierung sein.
Die Stichworte hierbei sind:
- MySQL-Query-Caching
Hierbei werden häufig gebrauchte Datenbankabfragen (queries) im Cache gespeichert, sodass schon bei der zweiten identischen Abfrage die Auslieferzeit deutlich geringer ist. Die Grösse des Caches kann konfiguriert werden, sie ist von der Belastung der Website und natürlich auch vom zur Verfügung stehenden Speicher abhängig. - PHP-Optimizer bzw. -Compiler [xcache, eaccellerator]
Bei dieser Optimierung werden die PHP-Scripte in kompiliertem Zustand gespeichert, sodass sie nicht erst jedesmal neu interpretiert werden müssen. Es gibt verschiedene Verfahren, zwei sind hier genannt worden. - Daten-Komprimierung mit gzip
Wird eine Webseite vom Webserver an den Browser ausgeliefert, geschieht dies normalerweise stückchenweise. Durch eine serverseitig ausgeführte Datenkomprimierung wird die Seite in einem Stück, aber auch mit deutlich weniger Datenmenge, also schneller ausgeliefert. Hierfür ist sowohl die Komprimierungssoftware zu installieren als auch der Webserver entsprechend zu konfigurieren. - Apache-Optimierung [worker statt prefork]
Üblicherweise wird der Webserver Apache so konfiguriert, dass er zu viele Prozesse startet, wenn die Anzahl der Abfragen wächst. Durch Einsatz des Worker-Modells wird dieses Verhalten verändert, sodass der Apache besser mit vielen Abfragen zurechtkommt, ohne dass die Performance sinkt.
Bei den hier angesprochenen Optimierungen handelt es sich teilweise um Änderungen an der Konfiguration (z.B. der my.ini), zum Teil um die Installation und Anpassung zusätzlicher Software (z.B. eaccellerator). Das Ziel ist hierbei immer, dass die Auslieferungsgeschwindigkeit bei zunehmender Last nicht überproportional sinkt.