On Tue, 07 May 2002 08:26:09 +0200, Torsten Werner wrote:
Am Dienstag, dem 07. Mai 2002 um 00:05:46, schrieb Hilmar Preusse:
drachi:[hille] >more +1102 /usr/src/linux-2.4.18/Documentation/filesystems/proc.txt| head -n 14 overcommit_memory
Das kenne ich, man muss es aber eben erst einschalten.
Das war auch schon bei 2.2.x so (zumindest auf der x86-Plattform). Im Moment ist der Streit nicht so wichtig, weil aktuelle Rechner sowieso an die 3 GB-Grenze für virtuellen Speicher heranreichen (in Hardware). Dem kann overcommit nichts wesentliches mehr hinzufügen.
AFAIK liegst du damit falsch. Die 3GB-Grenze wird zwar für den Adreßraums eines Prozesses beachtet, nicht aber für den gesamten Speicher (=RAM+swap). Du kannst problemlos 10 Prozesse starten, die jeweils 3 GB ausfassen. Wenn dann die 10 Prozesse ihre zusammen 30 GB mappen, schießt du dir in den Fuß.
Für malloced Speicher, der noch nicht genutzt wurde, werden nach wie vor keine Seiten im physischen Speicher (=RAM+Swap) reserviert.
zu "overcommit_memory": Die Variable erlaubt dir lediglich _zusätzlich_, die 3 GB pro Prozess in einem Stück auszufassen, statt nur in Stücken der Größe des im Moment wirklich freien Speichers. Wenn man nur 100 MB freies RAM hat, bekommt man ohne "overcommit_memory" keine 2.8 GB am Stück. Man bekommt aber 28 mal 100 MB :-) Mit "overcommit_memory" bekommt man die 2.8 GB auch am Stück.
Die Variable overcommit_memory ist also eigentlich nur show, sie begrenzt nicht wirklich etwas.
Reinhard