Mailinglist Archive: opensuse-de (2782 mails)
| < Previous | Next > |
Memory leak aufspüren
- From: Arno Lehmann <al@xxxxxxxxxxxxxx>
- Date: Tue, 12 Apr 2005 14:23:27 +0200
- Message-id: <425BBDBF.5020001@xxxxxxxxxxxxxx>
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:
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.:
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@xxxxxxxxxxxxxx
Arno Lehmann http://www.its-lehmann.de
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-/+ buffers used is das was ich als Wert aufzeichnen lasse.
total used free shared buffers cached
Mem: 515636 511760 3876 0 5424 14772
-/+ buffers/cache: 491564 24072
Swap: 2120540 60552 2059988
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(und bitte keine zu bösen Kommentare bzgl. dieser Technik - es funktioniert, und das reicht für mich...)
187415
elf:~ # ps -eopid= -orss= -ocmd= --sort=rss | awk '{print $2}' |xargs| sed -e 's/ /+/g'|bc
78640
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@xxxxxxxxxxxxxx
Arno Lehmann http://www.its-lehmann.de
| < Previous | Next > |