On Saturday 27 November 2004 13:46, Michelle Konzack wrote: > Am 2004-11-26 23:40:22, schrieb Tilo Schwarz: > > On Thursday 25 November 2004 17:37, Michelle Konzack wrote: > > > Beim Starten futtert Apache gerade mal 360 MB weg, aber wenn > > > jeder VHost auch nur einen Zugriff hatte, verschwindet der > > > Speicher und wird auch nicht irgendwie freigegeben. > > > > > > Das ist ein ganz normales verhalten von UNIX/Linux/BSD. > > > > Meinst Du jetzt speziell im Zusammenhang mit Apache + VHost oder im > > allgemeinen? Wenn ein normaler Prozeß beendet wird und der Kernel > > den Speicher nicht mehr freigibt find ich das nicht wirklich > > normal.
> Bist Du sicher, > das er nicht freigegeben wird, > wenn jemand ihn anfordert ? Kann schon sein (so wie bei buffers und cached), aber so extrem wie von Euch beschrieben hab ich das noch nie beobachtet. Ich hab's bei der Arbeit ständig mit Prozessen zu tun, die oft und viel Speicher schaufeln und da machen sich die free()-Calls in der Software in top etc. direkt bemerkbar. Vielleicht tritt dieser Effekt ja nur dann auf, wenn man sehr oft sehr kleine Speichermengen anfordert. Das einzige, worin ich mir sehr sicher bin, ist, daß es überhaupt nicht trivial ist zu bestimmen, wieviel Speicher auf einem Linux System "frei" sind. Das geht nämlich schon bei der Definition von "frei" los, denn wir meinen mit "frei" ja etwas, was der Kernel zunächst einmal gar nicht definiert (möglicherweise aus gutem Grund). Wer sich da mal reinbaggern möchte, unter http://kerneltrap.org/node/view/3790 gibt's Mel Gorman's "Understanding the Linux Virtual Memory Manager" als PDF - mit kommentiertem Code 748 Seiten, noch Fragen ;-) Was mich interessieren würde: Hast Du das beschriebene Verhalten auch mit den Zahlen, die /proc/meminfo liefert? > Bei mir fehlen 1,8 GByte in meinem neuen Virtual-Webserver (WOODY) > von 3 GByte. > > Der Server wird 4000 Domains/VHosts fahren die bereits fast alle > eingerichtet sind und ich habe keinerlei Spaicher probleme. > > Sprich, der Speicher ist Weg, wenn ich aber von ein paar Maschinen > aus Traffic uf den VHosts verursache (PHP) werden die fehlenden > 1.8 GByte konsumiert... > > Sprich, wenn es nicht funktionieren würde, könnte 'apache' keine > PHP Maschine mehr starten und einen Fehler produzieren. > > Aber nach TOP wird bei aufruf von PHP-Scripten und Webseiten > einwandfrei in 'top' die speicherkonsumierung angezeigt und der > verschwundene Speicher ist wieder da... > > Das bedeutet, das der verschwundene Speicher nicht aufgrund eines > Memory-Leaks entstanden ist und nicht mehr freigegeben werden kann. > > > Grüße, > > > > Tilo > > Greetings > Michelle Grüße, Tilo