Out of memory

Ich war offline, selbstverschuldet. Nach einem Update wollte der MySQL-Server nicht mehr starten. Aus den Logs konnte man keinen Fehler erkennen. Ich war schon drauf und drann das Backup zurückzuspielen um wenigstens wieder ein funkionierendes System zu haben. Erst die Lektüre des Handbuchs brachte mich auf die Idee mal den Server direkt – also von der Kommandozeile, ohne rc-Script – zu starten. MySQL hat sich dann über die unbekannte Option old_passwords beschwert. In der my.cnf findet sich tatsächlich dieser Abschnitt:

# For compatibility to other Debian packages that still use
# libmysqlclient10 and libmysqlclient12.
old_passwords        = 1

Merkwürdig, dass bei einem Debian-Update soetwas durchrutscht. Nachdem die Option auskommentiert war, lief MySQL wieder ohne Probleme.
Die Welt schien gerettet, bis wenig später der Server anfing sich totzuswappen und kaum noch reagierte. Bis ich top starten konnte, vergingen locker 10 Minuten. Ich konnte nur daneben sitzen und auf dem Display den Swap dahinschmelzen sehen.

out of memory

Weil der Swap irgendwann voll ist, wurden munter Prozesse getötet:

out of memory

Schuld war grep, das sich enorm viel Speicher genehmigte und unter dem User www-data lief. Kaum war der Indianer gestoppt, war der Spuk vorbei. Ok, der apache läuft Amok, also fliegt er raus. Das eben mal schnell durchgeführte Update auf apache2 brachte aber keine Linderung. Nicht lange, nachdem alle Sites liefen, ging das extrem-swapping wieder los. Zum Glück hatte ich endlich eine Idee, was die Ursache des ganzen sein könnte. grep + apache + mein Blog. Das kann ja nur das selbstgebastelte referer-Script sein. Und siehe da, kaum startet man das Script, macht sich grep mit 400MB im Speicher breit. Das Script ist jetzt tot gelegt und ich habe erstmal meine Ruhe.