Unser Server lagged – Zeit für Optimierungen

Ubuntu, Plesk, Apache, PHP, MySQL. Viel mehr läuft auf unserem Server eigentlich nicht. Deutlich potenter als der Vorgänger ist er auch. Warum zum Geier benötigen dann die Webseiten mit einem Mal Sekunden bevor sie angezeigt werden? Zeit wiedermal zu optimieren. Aber wie waren noch gleich die Settings, die ich vor zwei Jahren bei unserem letzten Server verwendet habe? Pff, das passiert mir nicht nochmal, diesmal schreibe ich sie auf!

Apache Optimierung

Beginnen wir beim Apache. Als erstes soll das Apache MPM Modul optimiert werden. Aber welches? Prefork, Worker oder Event?
/usr/sbin/apache2 -l
sagt mir mit welchen Modulen Apache kompiliert wurde. In meinem Fall war es prefork.c, also das Prefork Modul, dass ich nun in der
/etc/apache2/apache2.conf
etwas anpassen kann.

Außerdem sollten alle nicht benötigten Module abgeschaltet werden, die man in
/etc/apache2/mods-enabled
findet. Am besten nutzt man
a2enmod <modulname>
um Module anzuschalten, bzw.
a2dismod <modulname>
um diese abzuschalten. Ich habe z.B. mod_include deaktiviert, da wir keine server Side Includes verwenden.

MySQL

Um überhaupt erstmal einen Zugriff auf die wichtigen MySQL Variablen zu erhalten, musste ich mich als „root“ Nutzer anmelden. Unter Plesk-basierten Systemen gibt es jedoch keinen „root“ Nutzer, sondern nur einen „admin“, der sich ausschließlich von localhost aus anmelden darf. Also rasch lokal mittels
mysql -uadmin -p<code>cat /etc/psa/.psa.shadow
eingelogged und einen neuen User angelegt, mit dem ich dann auch die nötigen Rechte habe, ohne gleich die ganze Zeit als root (bzw. admin) agieren zu müssen:

Jetzt kann es aber endlich ans tunen gehen- Haaaaalt das klingt ja so als ob es einfach wäre. MySQL Tuning ist schwieriges Feld und hängt von vielen Faktoren ab, zu denen nicht nur die Serverhardware gehört, sondern auch die Applikationen die darauf laufen, die Tabellenformate (z.B. MyISAM oder innoDB) und folglich auch die Anfragetypen. Man kann also keine „Killer“-Konfiguration posten, die immer optimal läuft. Aber man kann sich mit der Zeit langsam annähern. Beginnen wir mit folgenden Werten in der
/etc/mysqld/my.cnf
im Bereich
[mysqld]
und sehen mal, wie sich die Werte auswirken.

Am besten man liest zu diesem Thema erstmal das High Performance MySQL Buch, treibt sich ein paar Wochen im MySQLPerformance-Blog rum oder liest was ich im Laufe der Monate für semiprofessionelle Ergüsse zu diesem Thema produziere 🙂

To be continued, äh optimized 😉

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Das könnte Dich auch interessieren...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.