Frage

Linux noob Frage:

Wenn ich die 500MB RAM und 500MB swap-space, kann das Betriebssystem und die Prozesse, dann die Verwendung von 1 GB Arbeitsspeicher?

In anderen Worten, ist die Gesamtmenge des verfügbaren Speichers für Programme und das Betriebssystem, die insgesamt der Größe des physikalischen Speichers und die swap-Größe?

Ich bin versucht, herauszufinden, welche SNMP-Counter Abfragen, sondern müssen verstehen, wie Linux verwendet virtuellen Speicher ein wenig besser zuerst.

Vielen Dank

War es hilfreich?

Lösung

Ja, das ist im Wesentlichen richtig. Die tatsächlichen Zahlen könnten (sehr) sein geringfügig niedriger, sondern für alle Absichten und Zwecke, wenn Sie physische Speicher und x virtuelle Speicher (Swap in Linux) y haben, dann haben Sie die verfügbaren Speicher für das Betriebssystem und alle Programme laufen unter dem x + y OS.

Andere Tipps

Eigentlich ist es im Wesentlichen richtig, aber Ihr "virtueller" Speicher befindet sich nicht neben Ihr "physischer Speicher" (als Matthew Scharley angegeben).

Ihr „virtueller Speicher“ ist eine Abstraktionsschicht des sowohl „physische“ (wie im RAM) und „swap“ (wie in der Festplatte, was natürlich ist, so viel körperlichen als RAM) Speicher.

Der virtuelle Speicher ist in essention eine Abstraktionsschicht. Ihr Programm adressiert immer eine „virtuelle“ Adresse, die Ihr Betriebssystem zu einer Adresse im RAM oder auf der Festplatte übersetzt (die zuerst geladen werden muss, in den RAM), je nachdem, wo sich die Daten befinden. Also Ihr Programm nie über Mangel an Speicher Sorgen hat.

Nichts ist jemals ganz so einfach nicht mehr...

Speicherseiten sind träge zugeordnet.Ein Prozess kann malloc() eine große Menge an Speicher und verwenden Sie es.So auf Ihre 500MB_RAM + 500MB_SWAP-system, ich konnte -- zumindest theoretisch -- allocate 2 GB Speicher aus dem heap, und die Dinge laufen fröhlich zusammen bis ich versuchen, zu verwenden zu viel Speicher.(An welcher Stelle auch immer-Prozess konnte nicht erhalten werden, mehr Speicher Seiten bekommt schob.Ich hoffe, es ist mein Prozess.Aber nicht immer.)

Die einzelnen Prozesse werden kann, auf 4 begrenzt gig als hard-Adresse Beschränkung auf 32-bit-Systeme.Auch wenn Sie mehr als 4 gig RAM auf der Maschine und bist du mit diesem bizarren segmentiert 36-bit-Gräueltaten aus der Hölle-Adressierung, die einzelnen Prozesse sind immer noch nur 4 gigs.Einige der 4 Konzerte zu gehen, für die gemeinsam genutzte Bibliotheken und Programm-code.So yer unten zu 2-3 gigs von stack+heap als eine Auseinandersetzung mit Einschränkung.

Sie können mmap-Dateien, wodurch Sie mehr Arbeitsspeicher.Es ist im Grunde fungiert als zusätzliche swap.I. e.Anstatt Sie laden ein Programm ist Binär-code Daten in den Speicher, und dann tauschen Sie es aus, um die SwapDatei, wird die Datei nur mmapped.Wie erforderlich, die Seiten sind vertauscht und in den RAM direkt aus der Datei.

Man kann in einige interessante Sachen, mit spärlichen Daten und mmapped sparse-Dateien.Ich habe gesehen, X-windows Anspruch enorme Speicherverbrauch, wenn in der Tat ist es nur ein kleines bisschen.

BTW:"kostenlos"könnte Ihnen helfen.Wie könnte "cat /proc/meminfo"oder die Vm Linien /proc/$PID/status.(Insbesondere VmData und VmStk.) Oder vielleicht "ps up $PID"

Obwohl meistens es wahr ist, dann ist es nicht vollständig richtig. Für einen bestimmten Prozess, die Umgebung, die Sie es laufen in kann den verfügbaren Speicher an Ihren Prozess begrenzen. Überprüfen Sie die Ausgabe von ulimit -v auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top