Arno Lehmann wrote:
Situation: Athlon 500, 512 MB, 2GB Swap, jede Menge Software. Nach Start ca. 300MB RAM belegt, load liegt typischerweise knapp über 0, und deutlich unter 0,1. Es laufen jede Menge Prozesse.
Nach etwa 24-36 Stunden fängt der oom-killer im Kernel an Prozesse abzuschiessen bis der Server nicht mehr ansprechbar ist - irgendwann hat's ldap, bind, named etc. weggeputzt.
Das laesst darauf schliessen, dass der Speicher ausgeht. Der Cache im Speicher wuerde z.B. automatisch verkleinert werden.
[...] Im Moment monitore ich per rrd den systemload und speichere mir jede Minute den Output von free und ps -eopid,user,rss,sz,cmd .
Was ich bisher sehe: Es wird Speicher verbraten. Und zwar nicht zu knapp:
Sun Mar 27 20:40:28 CEST 2005 total used free shared buffers cached Mem: 515636 377780 137856 0 77616 112284 -/+ buffers/cache: 187880 327756 Swap: 2120540 0 2120540
Sun Mar 27 21:35:32 CEST 2005 total used free shared buffers cached Mem: 515636 510260 5376 0 78924 112000 -/+ buffers/cache: 319336 196300 Swap: 2120540 0 2120540
In 55 Minuten vo 190M auf 320M... und zwar ohne dass ich ein Programm festmachen könnte das den Speicherverbrauch erklärt.
Buffer und Cache sind in etwa gleich geblieben, genutzter Speicher stieg von ca. 380 MB auf 510 MB (=130 MB), entsprechend ging der freie Speicher etwa um die gleiche Menge zurueck. Noch ist alles i.O., d.h. es ist genuegend RAM vorhanden, um Speicher allokieren zu koennen, aber wenn es so weiter geht, ist das natuerlich nicht so gut... Was fuer einen Kernel nutzt Du? Und wie ist Dein Swap-Bereich konfiguriert? Hast Du Speicher mit memtest mal getestet, nur um ein physikalisches Problem auszuschliesen?
Der letzte Durchgang des out-of-memory killers danach war dann der Reboot fällig...) brachte folgendes Log:
Der Kernel sollte nur anfangen, Prozesse zu killen, wenn das der letzte Ausweg ist (oder es ist ein buggy Kernel). Es koennte sein, dass ein Programm ein memory leak hat, d.h. je laenger es laeuft, desto mehr Speicher braucht es. Das muesste sich aber dann auf alle Faelle feststellen lassen. Was ergab Dein Speicher-Monitoring? Cheers, Th.