Arbeitsspeicher 16GB RAM wieviel wird / kann benutzt werden

El Präsidente

Lt. Commander
Registriert
Dez. 2007
Beiträge
1.295
Guten Tag,
besitze einen paar Systeme mit 16GB DDR2 RAM, welche mit Linux Debian 5.0 64BIT laufen und habe mir nun vor kurzem eine wichtige Frage gestellt. Und zwar...

... ich habe 16GB Arbeitsspeicher, unter 64Bit kann man die vollen 16GB mit entsprechender Software nutzen, 32Bit Software kann maximal 2GB für sich adressieren. Wenn ich jetzt zum Beispiel 32 x 256 MB 32Bit VServer starten würde, ungeachtet von anderen Faktoren, hätte ich theoretisch eine RAM-Last von 8192MB und wäre somit über den 3GB, die man sich normal adressieren kann unter 32Bit. Wie sieht das nun aus, kann man also nur mit 64Bit Software die 16GB Ram ausnutzen und bei 32Bit Software ist bei 3GB als Gesamtmasse für alle 32Bit Anwendungen Schluss ?



freue mich auf antworten.


mfg
Tim
 
Wenn du einen 64-Bit-Host hast, gilt das 2-GiB-Limit pro Prozess, d.h. wenn du für jeden VServer einen eigenen Prozess startest (oder, bei 256 MiB Limit je VServer, maximal 8 in einem Prozess hast), kommt das aus.
 
El Präsidente schrieb:
Wenn ich jetzt zum Beispiel 32 x 256 MB 32Bit VServer starten würde, ungeachtet von anderen Faktoren, hätte ich theoretisch eine RAM-Last von 8192MB und wäre somit über den 3GB, die man sich normal adressieren kann unter 32Bit.
Denkfehler. :) So ein 32bit-Programm sieht in seinem _virtuellen_ Adressraum ohne Verrenkungen tatsächlich nur 4 GB, davon 2 GB für sich und 2 GB für den Kernel. So kommst du auf deine " maximal 2GB". Allerdings bildet das darunterliegende Betriebssystem die virtuellen Adressen dieser Programm irgendwo auf die 16GB _physischen_ Speicher ab, nicht nur in die untersten paar GB.

Jedem 32-bit-Programm (den 64-bit-Programmen übrigens genauso) wird also sein eigener Adressraum vorgekaukelt. Beim Speicherzugriff eines Programms wird die vom Programm verwendeten _virtuelle_ Adresse in eine _physische_ Adresse umgewandelt, bevor der Rechner wirklich den RAM-Zugriff ausführen kann. Das passiert ständig und muss schnell gehen. Deshalb steckt dafür in einer CPU helfende Hardware - die MMU (Memory Management Unit). Die Übersetzungstabellen zwischen virtuellen und physischen Adressen liegen größtenteils im RAM. Die häufig verwendeten Einträge landen in einem Hardware-Cache (dem TLB - Translation Lookaside Buffer).

Damit hast du genug Stichpunkte, falls du dir das näher ansehen willst. http://de.wikipedia.org/wiki/Virtueller_Speicher ist ein guter Einstieg.

El Präsidente schrieb:
Wie sieht das nun aus, kann man also nur mit 64Bit Software die 16GB Ram ausnutzen und bei 32Bit Software ist bei 3GB als Gesamtmasse für alle 32Bit Anwendungen Schluss ?
Kannst mit vielen kleinen 32-bit-Programmen auch die 16 GB voll ausnutzen. Du kannst mit den vielen, kleinen 32 Bit-Programmen auf deinem 16GB-Rechner übrigens sogar viel mehr, also z.B. zusammen 20 GB virtuellen Speicher belegen. Was nicht auf physischen RAM gemappt werden kann, landet im swap auf der Platte.
 
Zuletzt bearbeitet:
Zumindest um noch einmal auf die alte "Problematik" mit den 32-Bit und den max 3,x GB Ram zurückzukommen: Das stimmt zwar ansich so, das Problem kannst du aber leicht mit PAE umgehen (entsprechendende Kernel findest du im Repo der Distri deiner Wahl).

Virtuzzo ist doch die kommerzielle Version von OpenVZ oder irre ich mich da?
 
ja.. virtuozzo container sind wie normale linux-prozesse. d.h. er kann die 16gb schon nutzen mit ner ausreichenden zahl von 32-bit programmen oder halt nem 64-bit programm.
die container können auf jeden fall mehr als 2gb nutzen, auch wenn sie 32-bit sind.
 

Ähnliche Themen

Zurück
Oben