Hallo allerseits. Ich versuche immer noch einem vermuteten Memory leak auf die Spur zu kommen, bin aber weder ein guter Programmierer noch kenne ich linux so gut dass ich im Schlaf die Informationen in /proc/ interpretieren kann. Ich schildere mal das Problem. Wenn ein bestimmtes Programmpaket läuft (nagios 2.0b2 oder -b3, www.nagios.org) geht die Speichernutzung relativ schnell hoch und höher. In der Version -b2 bis der oom-killer anfängt das System zu zersäbeln, in der -b3 bis knapp unter 100% des verfügbaren Speichers, dann steigt er sehr viel langsamer, und dann hab' ich das Programm beendet. Nach Ende des Programms geht die Speichernutzung nicht bzw. sehr viel später wieder auf einen Wert wie im Normalbetrieb zurück - rund 6 Stunden im kürzesten Fall, maximal? keine Ahnung, ich warte bereits 28 Stunden... Ich ermittle den Speicherbedarf mit free:
elf:~ # free total used free shared buffers cached Mem: 515636 511760 3876 0 5424 14772 -/+ buffers/cache: 491564 24072 Swap: 2120540 60552 2059988 -/+ buffers used is das was ich als Wert aufzeichnen lasse.
Ach ja: Nach einem Systemstart, wenn alle Prozesse "normal" laufen liegt der Wert typischerweise um 100MB. Nun habe ich das Problem dass ich weder mit top noch ps rauskriegen kann welche Prozesse so viel Speicher nutzen. Jetzt im Moment z.B.:
elf:~ # ps -eopid= -osz= -ocmd= --sort=rss | awk '{print $2}' |xargs| sed -e 's/ /+/g'|bc 187415 elf:~ # ps -eopid= -orss= -ocmd= --sort=rss | awk '{print $2}' |xargs| sed -e 's/ /+/g'|bc 78640 (und bitte keine zu bösen Kommentare bzgl. dieser Technik - es funktioniert, und das reicht für mich...)
Beide Werte - RSS wie auch Size - liegen ja deutlich unter Memory used. Der Speicher wird also nicht in einer Form "verbraucht" die ich mit meinem Wissen nachvollziehen könnte, ich vermute also dass der Kernel daran beteiligt ist. Wer kann mir weitere Tips geben wie ich dem nachgehen könnte? Danke schonmal, Arno -- IT-Service Lehmann al@its-lehmann.de Arno Lehmann http://www.its-lehmann.de