Carsten Boehlke wrote:
Wenn du den Prozess oder wenigstens den User identifiziert hast, dann kannst du in /etc/security/limits.conf als Reissleine einige Limits für den user setzen, die den Amoklauf in Grenzen halten, damit wenigstens der Server weiterläuft.
Nun war es wieder soweit. Hier der letzte Eintrag in mein Top-Log:
top - 20:25:56 up 2 days, 22:53, 0 users, load average: 79.41, 64.77, 33.58
Jause!! Das is schon ein ziemlich hoher Wert für Load.
Tasks: 250 total, 72 running, 177 sleeping, 0 stopped, 1 zombie
Was ist der Zombie-Prozess?
Cpu(s): 0.4%us, 91.1%sy, 0.0%ni, 0.0%id, 7.7%wa, 0.1%hi, 0.7%si, 0.0%st
7.7% wa ist auch recht hoch, das wird wohl von dem happigen Gebrauch des langsamen Swaps herrühren.
Mem: 1027004k total, 1018912k used, 8092k free, 2588k buffers Swap: 2096440k total, 2096440k used, 0k free, 5564k cached
USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND root 10 -5 0 0 0 D 17.2 0.0 0:52.03 kswapd0 mysql 18 0 501m 13m 792 R 4.0 1.3 61:35.50 mysqld wwwrun 18 0 280m 12m 2064 R 3.0 1.2 0:05.18 httpd2-prefork wwwrun 18 0 287m 14m 2012 R 1.7 1.5 0:02.78 httpd2-prefork wwwrun 18 0 278m 9416 1864 R 1.6 0.9 0:02.50 httpd2-prefork wwwrun 18 0 295m 13m 2024 R 1.6 1.4 0:04.73 httpd2-prefork wwwrun 18 0 302m 14m 2020 R 1.5 1.5 0:04.29 httpd2-prefork wwwrun 18 0 287m 11m 2012 R 1.5 1.2 0:02.13 httpd2-prefork wwwrun 18 0 287m 17m 2012 R 1.5 1.8 0:02.07 httpd2-prefork wwwrun 18 0 287m 14m 2012 R 1.4 1.5 0:02.60 httpd2-prefork
Nochmal Jause! die http-Prozesse schlucken etwa 280 MB im Schnitt?!? Selbst mit Shared Memory ist das noch verdammt viel. Versuche mal im Log des Apaches herauszufinden, was der eigentlich in dieser Zeit da macht. Wieviele http-Prozesse laufen denn insgesamt? Vielleicht reicht es ja, die Zahl der Prozesse einzuschränken. Jedenfalls würde ich an deiner Stelle den Apache erst einmal an die Leine nehmen, damit zumindest der Server nicht mehr komplett zusammenbricht und du besser die Ursachen erforschen kannst. /etc/security/limits.conf: wwwrun hard memlock 1048576 Schau dir mal die Beispiele dort an. Oder verwende "ulimit -v 1048576" im Startscript des Apache. Und dann solltest du nachforschen, warum der Apache so ein Ramschlucker ist.
Und sar gibt folgendes als letztes aus:
20:25:25 kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 20:25:27 9928 1017076 99.03 2656 6816 4 2096436 100.00 8716
Das ist doch nun der mysqld, oder täuscht mich das?
mysql hat 500 MB geschluckt, den Rest hat sich der Apache geschnappt. Ich würde erst den Apache etwas einschränken, danach mysql. Jedenfall würde ich mehr RAM empfehlen mit Typo. Normalerweise sollte auch der oom-killer dann Prozesse abschießen. Wahrscheinlich würde der den mysql-Prozess töten, weil der doch so viel RAM schluckt. (^-^) -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org