On Fri 07 Dec 2007, Thomas Hertweck wrote:
Steht overcommit_memory auf 2, dann ist overcommit_ratio die Prozentzahl, um die der Kernel die Memory-Resourcen ueberbewertet. In anderen Worten, damit gaukelt man vor, man haette mehr RAM als eigentlich tatsaechlich vorhanden ist. Entsprechend reagiert der Kernel dann anders auf Speicheranforderungen. Das geht mit manchen Programmen gut, weil sie ueber die gesamte Laufzeit gesehen nicht allen angeforderten Speicher auch tatsaechlich stets beanspruchen (siehe dazu auch "optimistic memory allocation"). Mit anderen Programmen (die tatsaechlich allen angeforderten Speicher nutzen) fuehrt es zu ziemlichen Performance-Einbruechen (weil staendig geswappt wird). Bei 2GB RAM und 50% overcommit_ratio gaukelt man 2GB + 50% * 2GB = 3GB plus entsprechenden Swap-Space vor.
D.h. wenn der oom-killer nie in Aktion treten soll, muß ratio=0 sein. Sinnvoll ist das sicher nicht, da die meisten Programme wohl die eine oder andere Seite sinnlos anfordern. Aber bei Programmen mit großen Datensegmenten, auf die sie auch zugreifen, ist ein kleiner ratio (~10) sicher sinnvoll, oder? Trotzdem verstehe ich den Sinn dieser Formel nicht: total address space = swap + ratio * physical RAM Danach sollte doch der Adreßraum bei z.B. 3GB swap und 1GB RAM auf 3.5GB begrenzt sein. Der gesamte verfügbare Speicher von 4GB wird also nicht ausgenutzt? Das ist irgendwie unlogisch. Andererseits nach Deiner Argumentation oben käme Swap hier nochmal dazu, also total address space = 2 * swap + ratio * physical RAM Das ist aber noch unlogischer, denn wenn swap viel größer als RAM ist, hätte er den größten Einfluß auf die Menge des nicht wirklich verfügbaren RAMs. Im Beispiel hätten wir 6.5GB Adreßraum, von denen nur 4 wirklich benutzt werden können. Wo ist hier der Fehler? Ist die erste Formel richtig, würde ratio=100% bedeuten, es darf der gesamte RAM und der gesamte Swap benutzt werden. Dann wäre aber die default-Einstellung von ratio=50 irgendwie Quatsch. Die 2. Formel ist totaler Quatsch. Wenn ich mir jetzt ein System ohne Swapspace vorstelle und ratio=0 setze, dann kommt nach der ersten Formel: total address space = swap + ratio * physical RAM = 0 + 0 *X = 0 raus. Das System hat also keinen Adreßraum zu vergeben. Irre.
PS: Bitte versende keine Privatemails von Postings! Warum sollte ich Deine Email zwei Mal erhalten wollen?
Schuldigung, ich drücke meist automatisch auf "a". Das heißt Antwort an alle. Torsten -- A: It reverses the normal flow of conversation. Q: What's wrong with top-posting? A: Top-posting. Q: What's the biggest scourge on plain text email discussions? -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org