swap / mem bedarf eines Prozesses nach "out of memory"
Hallo, gestern ist mir ein apache Kind abgeraucht (wozu ich sicher demnaechst noch ne Frage stelle wenn ich alles sortiert habe) Wie es scheint hat dieser den ganzen Swap vollgeschrieben - Der Server war weder per serial console noch ssh oder einem anderen Protokoll erreichbar! Nur auf ping hat noch geantwortet! dann hat es der kernel endlich gerallt und Feb 5 02:16:10 h52614 kernel: Out of Memory: Killed process 13576 (httpd2-prefork). Feb 5 02:16:10 h52614 kernel: httpd2-prefork: page allocation failure. order:0, mode:0xd2 Feb 5 02:16:10 h52614 kernel: Call Trace: [....] gemacht. ein "free" zeigte danach verstaendlicherweise eine Menge freies RAM und viel bentztes swap an. Blick in die Prozessliste und Tests ergaben, dass wohl alle anderen Prozesse den Voragang uberlebt zu haben scheinen und wie gewohnt das tun was sie sollen. Allerding habe ich einen Prozess laufen der normalerweise immer (auch direkt nach Neustart) etwa 35% des RAMs verbraet - nun zeigte mir top aber nur 5% an!! Trotzdem macht er immer noch genau das was er soll. (es ist ein cod-game-server) Nachdem ich ihm ein bisschen was zu tun gegeben habe stieg der Speicher verbrauch bis heute wieder auf 10% an. Kann es sein dass immer noch die groessten Teile des cod-servers im swap liegen oder ist der swap verbrauch auch in der mem-spalte von top enthalten? Falls ja scheinen es ja irgendwie unwichtige pages zu sein, da er sie ja nicht zurueck swapped! Das wirft die Idee auf ob man nicht den cod-server von vornherein in dieser weise starten kann, um immerhin 25% des RAMs zu sparen - Performance Verlust konnte ich bis jetzt nicht beobachten. Wie kann ich mein benutztes swap (derzeit 250MB) analysieren. Welcher Prozess benutzt wieviel und so! (RAM habe ich derzeit 300 MB frei! - also swapped er wohl nur zurueck wenn die ausgelagerten Seiten wirklich benoetigt werden.) cu Ruediger
Ruediger Meier wrote:
Hallo, gestern ist mir ein apache Kind abgeraucht (wozu ich sicher demnaechst noch ne Frage stelle wenn ich alles sortiert habe) Wie es scheint hat dieser den ganzen Swap vollgeschrieben - Der Server war weder per serial console noch ssh oder einem anderen Protokoll erreichbar! Nur auf ping hat noch geantwortet!
dann hat es der kernel endlich gerallt und
Feb 5 02:16:10 h52614 kernel: Out of Memory: Killed process 13576 (httpd2-prefork). Feb 5 02:16:10 h52614 kernel: httpd2-prefork: page allocation failure. order:0, mode:0xd2 Feb 5 02:16:10 h52614 kernel: Call Trace: [....]
gemacht.
ein "free" zeigte danach verstaendlicherweise eine Menge freies RAM und viel bentztes swap an.
Blick in die Prozessliste und Tests ergaben, dass wohl alle anderen Prozesse den Voragang uberlebt zu haben scheinen und wie gewohnt das tun was sie sollen.
Benutzst du per Zufall Apache 2 vor v2.0.48-2 ? Der hat eine schöne DoS-Anfälligkeit die dir problemlos den ganzen Speicher füllen kann, bis dann irgendwann mal was gekillt wird... Auf 2.4er Kernel hab ich hierbei auch beobachtet wie dann ANDERE prozesse zerschossen wurden.... sshd, mysql, devdaemon, ... War nur grad so ne Idee. Grüsse Matti
On Saturday 05 February 2005 16:25, Matthias Keller wrote:
gestern ist mir ein apache Kind abgeraucht (wozu ich sicher demnaechst noch ne Frage stelle wenn ich alles sortiert habe) Wie es scheint hat dieser den ganzen Swap vollgeschrieben - Der Server
Benutzst du per Zufall Apache 2 vor v2.0.48-2 ? Der hat eine schöne DoS-Anfälligkeit die dir problemlos den ganzen Speicher füllen kann, bis dann irgendwann mal was gekillt wird... Auf 2.4er Kernel hab ich hierbei auch beobachtet wie dann ANDERE prozesse zerschossen wurden.... sshd, mysql, devdaemon, ...
War nur grad so ne Idee.
2.0.49-27.18.3 von SuSE 9.1 (sollte das aktuellse you update sein) der crash hat mit nem php/mysql script zu tun und ich kann ihn jetzt reproduzieren. Dazu fange ich aber noch einen neuen Thread an! Hier geht es mir eher um das interessante Verhalten des CoD servers :) Dieser hat immerhin 150MB aufs swap geschrieben, die scheinbar gar nicht so wichtig sind - das heisst doch das ich nun 150MB mehr habe fuers HD caching oder weitere Prozesse. Das wuerde ich dem CoD server gerne generell beibringen wenn moeglich ohne vorher den Apache amok laufen zu lassen :) cu Ruediger
Hallo, Am Sat, 05 Feb 2005, Ruediger Meier schrieb: [..]
Kann es sein dass immer noch die groessten Teile des cod-servers im swap liegen oder ist der swap verbrauch auch in der mem-spalte von top enthalten?
Ist enthalten.
Wie kann ich mein benutztes swap (derzeit 250MB) analysieren. Welcher Prozess benutzt wieviel und so!
Schalte in top einfach die Spalte SWAP an.
(RAM habe ich derzeit 300 MB frei! - also swapped er wohl nur zurueck wenn die ausgelagerten Seiten wirklich benoetigt werden.)
Ja. -dnh --
Darum will man im Laden auch mit Bankomat bezahlen, aber online is' halt nicht. -- K. B. Pruenner (aus .at) Wie das? Die Kiste mit dem Gabelstapler vor die Kasse hinstellen und sagen: "aufmachen können se ihn selber, sollte genug drinne sein"? -- F. Wuest
On Saturday 05 February 2005 18:20, David Haller wrote:
[...] ist der swap verbrauch auch in der mem-spalte von top enthalten?
Ist enthalten.
Sicher? Ich glaube nicht denn: $ ps v -u gamer PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 16760 pts/0 Ss+ 85:10 2963 665 243854 29820 5.7 ./coduo_lnxded ^^^^ $ free total used free shared buffers cached Mem: 517240 463988 53252 0 7232 282788 -/+ buffers/cache: 173968 343272 Swap: 514072 218584 295488 $ swapoff -a $ ps v -u gamer PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 16760 pts/0 Ss+ 85:12 2963 665 243854 179592 34.7 ./coduo_lnxded ^^^^^ Also hat er das was im Swap lag vorher nicht angezeigt. Der Witz ist nun dass es ueberhaupt kein Problem gab als die 30% 2 Tage lang im swap lagen! Der Server lief gut! Meine Frage daher wie kann ich dem Prozess manuell mitteilen, dass er unwichtige Pages aufs Swap packen soll (ohne vorher den Apachen chrashen zu lassen)? Dann koennten die gesparten 150MB! naemlich fuer besseres verwendet werden!
Wie kann ich mein benutztes swap (derzeit 250MB) analysieren. Welcher Prozess benutzt wieviel und so!
Schalte in top einfach die Spalte SWAP an.
umm das lese ich erst jetzt - lol - nun ist es aber leer :(
(RAM habe ich derzeit 300 MB frei! - also swapped er wohl nur zurueck wenn die ausgelagerten Seiten wirklich benoetigt werden.)
Ja.
gut! Kann man das zurueck swappen auch manuell anstossen (ohne swapoff und vielleicht einzeln fuer ausgewaehlte Prozesse) cu Ruediger
Hallo, Am Sun, 06 Feb 2005, Ruediger Meier schrieb:
On Saturday 05 February 2005 18:20, David Haller wrote:
[...] ist der swap verbrauch auch in der mem-spalte von top enthalten?
Ist enthalten.
Sicher? Ich glaube nicht denn:
$ ps v -u gamer PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 16760 pts/0 Ss+ 85:10 2963 665 243854 29820 5.7 ./coduo_lnxded ^^^^ $ free total used free shared buffers cached Mem: 517240 463988 53252 0 7232 282788 -/+ buffers/cache: 173968 343272 Swap: 514072 218584 295488
$ swapoff -a
$ ps v -u gamer PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 16760 pts/0 Ss+ 85:12 2963 665 243854 179592 34.7 ./coduo_lnxded ^^^^^
Also hat er das was im Swap lag vorher nicht angezeigt.
Was wolltest du unterstreichen? "RSS"? Du sollt sowas nicht mit einer proportionalen Schrift mailen! ;(
Der Witz ist nun dass es ueberhaupt kein Problem gab als die 30% 2 Tage lang im swap lagen! Der Server lief gut!
Tja. *g*
Meine Frage daher wie kann ich dem Prozess manuell mitteilen, dass er unwichtige Pages aufs Swap packen soll (ohne vorher den Apachen chrashen zu lassen)? Dann koennten die gesparten 150MB! naemlich fuer besseres verwendet werden!
Nicht direkt. Du koenntest aber ein beliebiges Programm nehmen, das "genug" Speicher anfordert (und dann wieder freigibt). Dann sollten die anderen Prozesse swappen (und nach der Freigabe holen die sich dann wieder das noetige aus dem swap).
Wie kann ich mein benutztes swap (derzeit 250MB) analysieren. Welcher Prozess benutzt wieviel und so!
Schalte in top einfach die Spalte SWAP an.
umm das lese ich erst jetzt - lol - nun ist es aber leer :(
*g*
(RAM habe ich derzeit 300 MB frei! - also swapped er wohl nur zurueck wenn die ausgelagerten Seiten wirklich benoetigt werden.)
Ja.
gut! Kann man das zurueck swappen auch manuell anstossen (ohne swapoff und vielleicht einzeln fuer ausgewaehlte Prozesse)
AFAIK nein. -dnh -- I'm not a *nix monk. Where *nix is concerened I consider myself to be approaching 'hedge wizard' level, ie messy, smelly, a bit unpredictable and prone to cackling. -- jim
participants (3)
-
David Haller
-
Matthias Keller
-
Ruediger Meier