Warum kann kein Speicher alloziert werden?

13/02/2009 - 14:03 von Alexander Skwar | Report spam
Hallo.

Ich bin auf einem Sun M3000 Server mit Solaris 10 (Sparc) in der
Global Zone. Dieser Rechner hat 16GB physikalischen Speicher und,
testhalber, 31G Swap.

Nun habe ich mir ein simples Progràmmchen in C geschrieben,
Source auf http://askwar.pastebin.ca/1336018, das nichts anderes
macht als max. 18x nacheinander "malloc(1 * 1024 * 1024 * 1024)"
auszuführen - also 18x 1GB an RAM anzufordern.

Kompiliert habe ich das Programm mit gcc 3.4.3 und auch mit Sun
Studio 12.

Führe ich das Programm aus, so kann es (heute) nur 3x1 GB
"malloc'en". Gestern konnte es 9x1 GB anfordern.

Frage: Warum ist das so?

Ich habe bei dem System keine Grenzen o.à. in Betrieb - jeder
Prozess kann soviel Speicher nehmen, wie er will. Und Speicher
sollte auch mehr als genug frei sein - zumindest 20 GB SWAP
sollten frei sein (top sagt, das 31GB Swap frei sind). Warum
konnte aber nur (jetzt gerade) 3GB angefordert werden?

core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 10
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 29995
virtual memory (kbytes, -v) unlimited


Vielen Dank,
Alexander

I just forgot my whole philosophy of life!!!
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 

Lesen sie die antworten

#1 Juergen P. Meier
13/02/2009 - 19:46 | Warnen spam
Alexander Skwar :
Nun habe ich mir ein simples Progràmmchen in C geschrieben,
Source auf http://askwar.pastebin.ca/1336018, das nichts anderes
macht als max. 18x nacheinander "malloc(1 * 1024 * 1024 * 1024)"
auszuführen - also 18x 1GB an RAM anzufordern.

Kompiliert habe ich das Programm mit gcc 3.4.3 und auch mit Sun
Studio 12.



Google "overcomittment"

Das ist kein Linux.

Frage: Warum ist das so?



Works as Designed. Du darfst das OS nicht kaputt-mallocen, das ist
schliesslich kein Linux, wo ein einzelner unprivilegierter User
jederzeit privilegierte Prozesse abschiessen kann.

Juergen

Ähnliche fragen