Lieber WDR,
seit geraumer Zeit habe ich das Problem, dass der Server, auf welchem unter anderem mein Blog läuft, in sehr unregelmäßigen Abständen in ein out of memory läuft. Was habe ich nicht alles versucht um dem Verursacher auf die Schliche zu kommen…
Der erste Schritt war die Visualisierung des Speicherbedarfs wichtiger Prozesse. Dabei konnte ich jedoch immer nur sehen, dass ein Prozess vom Kernel gekillt wurde. Leider ist das in den seltensten Fällen jener Prozess, der ein out of memory verursacht. Stattdessen sind es oftmals weniger aktive Prozesse mit viel Speichbedarf. Dummerweise sind eben diese Prozesse die Kernkomponenten einer Mail-Collaborations-Suite.
Dann habe ich zusätzlich den Gesamtspeicherbedarf und den freien Speicher protokolliert und visualisiert. Leider sieht man auch hier in den seltensten Fällen einen Peak wie in der nachfolgenden Abbildung, denn die massiven Speicheranforderungen dauern oftmals nur ein paar Sekunden und fallen bei einem Log-Intervall von 1 Minute nicht auf. Dementsprechend hatte ich selten eine so schöne Grafik wie hier.
Über den Zeitpunkt habe ich jedoch in den Log-Dateien nachwievor keine Anhaltspunkte gefunden, woher das Problem stammen könnte. Also habe ich ein Skript geschrieben, welches mir für den Fall, dass der freie Speicher unter ein Limit von 100MB sinkt die Prozesstabelle im Sekundentakt in eine Log-Datei schreibt.
… und dabei zeigte sich, dass ein bis zwei Sekunden vor dem Crash plötzlich über 100 Apache-Prozesse liefen. Gut…, an den Einstellungen werde ich jetzt nachbessern. Aber ein Blick in die Logs offenbarte, dass innerhalb von 3 bis 4 Sekunden knapp 200 Requests auf mein Blog abgesetzt wurden. Das entspricht in etwa der Anzahl der URLs in der sitemap.xml.
Die geloggte IP ist die 149.219.195.226 (aus dem Netz des WDR Köln), welche freundlicherweise keinen Reverse-DNS besitzt und sich auch eindeutig erkennbar mit Mozilla/4.0 meldet. Ich gehe jetzt einfach mal davon aus, dass es um einen Indizierungs-Bot einer Suchmaschine handelt und frage daher einfach mal frei raus:
Geht’s noch?!?
Wer so eine Suchmaschine baut sollte besser noch einmal die Schulbank drücken. Ich empfehle hierzu „Introduction to Computer Science (CS101) Building a Search Engine“ der Online-Universität Udacity:
http://www.udacity.com/overview/Course/cs101/CourseRev/apr2012
Danke WDR,
Jens