Problem:
Bei manchen virtuellen Servern steht die Speicherauslastung im roten Bereich (privvmpages
in /proc/user_beancounters
) ohne daß viel Betrieb auf dem Server besteht.
Lösung:
Den meisten Speicher verbrauchen meist der Webserver Apache2 und die Datenbank MySQL. Zusätzlich sollte man schauen, daß man auch nur die Dienste laufen, die man wirklich braucht.
Apache:
In der Datei /etc/apache2/server-tuning.conf
die Angaben unter prefork MPM
ändern:
StartServers 1
MinSpareServers 1
MaxSpareServers 3
Wir prüfen zusätzlich die benötigten Apache-Module: In /etc/sysconfig/apache2
suchen wir die Variable APACHE_MODULES
. Viele voreingestellte Module werden meist nicht gebraucht. Zum Beispiel:
- auth_dbm (HTTP-Auth über Berkley-DB)
- autoindex (Directory-Index
- expires (Expires-Header)
- frontpage (Frontpage-Extension (Wer arbeitet denn mit Frontpage?))
- include (SSI)
- negotiation (länderspezifischer Content)
- perl (mod-Perl hat nix mit CGI zu tun!)
- rewrite (URL-Rewrite/-Weiterleitungen)
- speling (erraten von fehlerhaften URL's)
- status (Status-Abfrage der aktuellen Threads: Performance-Fresser)
- userdir (URL's der Form
/~user/
)
MySQL:
In der Datei /etc/my.cnf
die Sektion [mysqld]
finden und die Parameter ändern/ergänzen:
key_buffer = 2M
myisam_sort_buffer_size = 4M
read_buffer_size = 512K
read_rnd_buffer_size = 4M
SpamAssassin:
Jede eingebundene Regel kostet Speicher und Performance. Hier gilt es die richtigen Regeln zu deaktivieren.
Plesk:
Siehe Plesk: Speicher optimieren
Dienste / Server / Daemon:
Ein typischer Dienst der installiert und gestartet ist, obwohl man ihn gar nicht braucht ist der Nameserver (bind
bzw. named
).
Weitere Kandidaten sind z.B. neben MySQL
ein zweiter Datenbank-Server: postgresql
oder ein Port-Wächter (portmap
) oder gar Webmin
selbst.