Mailinglist Archive: opensuse-de (1081 mails)

< Previous Next >
Re: mysqld und Swap
  • From: Sandy Drobic <suse-linux@xxxxxxxxxxxxxxxxxxxxxxx>
  • Date: Fri, 01 Aug 2008 00:58:44 +0200
  • Message-id: <489243A4.9080804@xxxxxxxxxxxxxxxxxxxxxxx>
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@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups