Moin und frohe Ostern. Bisher hat sich ja niemand für das Problem interessiert. Also fasse ich mal zusammen was ich bisher rausbekommen habe. (TOFU bleibt, falls doch jemand nachlesen will...) 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 beobachte ich jetzt schon eine ganze Weile. Ich habe elf:~ # cat /proc/sys/vm/overcommit_memory 2 eingestellt, das hat das Problem verbessert, aber nicht behoben. 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. Der letzte Durchgang des out-of-memory killers danach war dann der Reboot fällig...) brachte folgendes Log:
Mar 27 18:01:25 elf kernel: oom-killer: gfp_mask=0x1d2 Mar 27 18:01:25 elf kernel: DMA per-cpu: Mar 27 18:01:25 elf kernel: cpu 0 hot: low 2, high 6, batch 1 Mar 27 18:01:25 elf kernel: cpu 0 cold: low 0, high 2, batch 1 Mar 27 18:01:25 elf kernel: Normal per-cpu: Mar 27 18:01:25 elf kernel: cpu 0 hot: low 32, high 96, batch 16 Mar 27 18:01:25 elf kernel: cpu 0 cold: low 0, high 32, batch 16 Mar 27 18:01:25 elf kernel: HighMem per-cpu: empty Mar 27 18:01:25 elf kernel: Mar 27 18:01:25 elf kernel: Free pages: 3224kB (0kB HighMem) Mar 27 18:01:25 elf kernel: Active:64569 inactive:57774 dirty:0 writeback:5 unstable:0 free:806 slab:3824 mapped:1358 pagetables:283 Mar 27 18:01:25 elf kernel: DMA free:2000kB min:20kB low:40kB high:60kB active:5460kB inactive:4820kB present:16384kB Mar 27 18:01:25 elf kernel: lowmem_reserve[]: 0 495 495 Mar 27 18:01:25 elf kernel: Normal free:1224kB min:700kB low:1400kB high:2100kB active:252816kB inactive:226276kB present:507840kB Mar 27 18:01:25 elf kernel: lowmem_reserve[]: 0 0 0 Mar 27 18:01:25 elf kernel: HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB present:0kB Mar 27 18:01:25 elf kernel: lowmem_reserve[]: 0 0 0 Mar 27 18:01:25 elf kernel: DMA: 0*4kB 0*8kB 1*16kB 0*32kB 1*64kB 1*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 2000kB Mar 27 18:01:25 elf kernel: Normal: 136*4kB 9*8kB 2*16kB 2*32kB 0*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 1224kB Mar 27 18:01:25 elf kernel: HighMem: empty Mar 27 18:01:25 elf kernel: Swap cache: add 2103349, delete 2102994, find 570985/1079762, race 74+685 Mar 27 18:01:25 elf kernel: Free swap = 2094636kB Mar 27 18:01:25 elf kernel: Total swap = 2120540kB Mar 27 18:01:25 elf kernel: Out of Memory: Killed process 27813 (httpd2-prefork).
Daraus kann ich nur sehen dass zwar jede Menge Swapspace da ist, aber wegen Mangels irgendwelchen Speichers gekillt wurde. Wer kann mir hir einen Tip geben? Arno Arno Lehmann wrote:
Hallo allerseits,
ich hab' hier bei einem neu aufgesetzten Server unter 9.2 ein mächtiges Problem.
Das Gerät ist ein Allround-Server: web, mail, ftp, cups, samba, etc. pp.. Normalerweise laufen darauf so ca. 120 Prozesse aufwärts, und das mit einer zugegebenermassen schwachen Hardware: Athlon 500, 256 MB. 2 GB Swap vorhanden.
Nun ist es so, dass ich schon ohne laufenden apache eine load von 2,2 typisch habe. Reaktionszeiten bei imap-Zugriffen sind träge, auf der Konsole ist alles entsprechend langsam.
Zunächst war's so das der oom-killer auch regelmäßig Prozesse wie dhcpd, ldap oder named gekillt hat. Das ist nicht gut, nach etwas rumsuchen habe ich also vm.overcommit_memory auf 2 gesetzt, damit bleiben die Prozesse wenigstens amlaufen. Nur hab' ich mit apache und einemlaufenden Backup dann eine load von 11 oder 12 odersteigend, und entsprechend timeouts bei DNS- oder dhcp-Anfragen. Also auch unbrauchbar.
Nach einem Neustrat nach Kernelaktualisierung hatte ich dann mal gute Antwortzeiten, und load unter 0.2.
So sollte es sein, dachte ich und war zufrieden.
Blieb aber nicht dabei, aus für mich nicht nachvollziehbaren Gründen war nach einiger Betriebszeit alles wieder beim alten und schlechten.
Weiss jemand Rat?
Ach so, der Vorgänger ist ein Pentium 200, mit älerer, anderer Software, aber den gleichen Diensten. Der reagiert flott auf der Konsole, load bei 0,2, nur bei imap-Zugriffen und als Webserver wurde er zu langsam.
Danke für Hinweise schonmal,
Arno
-- IT-Service Lehmann al@its-lehmann.de Arno Lehmann http://www.its-lehmann.de