Warum scheint der Wert in / proc / meminfo nicht genau dem System-RAM zuzuordnen zu sein?

7

Die Werte in / proc / meminfo für MemTotal sind nicht sinnvoll. Als Mensch scheint es ungefähr dem installierten RAM zu entsprechen, aber für die Verwendung zur Anzeige des installierten RAM eines automatisierten Dienstprogramms scheint es ungenau und inkonsistent zu sein.

Für ein System mit 1 GB RAM würde ich erwarten, dass die MemTotal-Leitung einen Wert von 1048576 - 1024 * 1024 hat. Stattdessen sehe ich 1029392. Auf einer anderen 4G-Box sehe ich 3870172, was kein Vielfaches von 1024 ist und nicht einmal in der Nähe von 1029392 * 4 liegt. Auf einer 8G-Box erhalte ich 8128204, was wiederum keine Korrelation zu den anderen Werten zu haben scheint, noch ist es ein Vielfaches von 1024.

Ich versuche, diese Informationen zu verwenden, um den RAM auf einer Statuswebseite zu melden. Meine Problemumgehung besteht darin, es nur auf das nächste 1G-Vielfache zu "runden", aber ich möchte verstehen, warum diese Werte inkonsistent erscheinen und nicht meinen Erwartungen entsprechen.

Kann mich jemand darüber informieren, was ich hier vermisse?

EDIT: Um die akzeptierte Antwort unten zu erweitern ....

Die Referenz finden Sie hier .

Von dieser Seite, die die Inkonsistenz erklärt, interessiert mich auch Folgendes:

meminfo:

Bietet Informationen zur Verteilung und Nutzung des Speichers. Dies hängt von der Architektur und den Kompilierungsoptionen ab. ...

Eric Asberry
quelle

Antworten:

14

Von Documentation/filesystems/proc.txt:

MemTotal: Total usable ram (i.e. physical ram minus a few reserved
          bits and the kernel binary code)

Hier bitteschön.

Nachtrag:

dmesg|grep Memory: gibt Ihnen ein bisschen mehr:

$ dmesg|grep Memory:
Memory: 3934184k/5177344k available (4434k kernel code, 1091560k absent, 151600k reserved, 7433k data, 920k init)

Nachtrag II:

Es lohnt sich auch hinzuzufügen, dass so ziemlich alles in / proc zumindest eine flüchtige Dokumentation in dieser Datei enthält. Es ist also ein guter erster Stopp, wenn Sie eine ähnliche Frage haben.

mattdm
quelle
1
Vielen Dank! Also im Grunde RTFM. :) Ich wusste nicht, wo ich diese Informationen finden kann und mein Google-Fu hat mich im Stich gelassen. Falls jemand anderes interessiert ist, finden Sie die oben genannte Referenz hier: kernel.org/doc/Documentation/filesystems/proc.txt
Eric Asberry
Für die Aufzeichnung (und die Verbesserung Ihres Google-Fu): Eine Google-Suche nach "/ proc / meminfo" liefert genau diese Informationen als erstes Suchergebnis.
Larsks
Ich gestehe, ich habe nie versucht, nur nach "/ proc / meminfo" zu suchen. Vielen Dank, dass Sie sich die Zeit genommen haben, auf mein schwaches Google-Fu hinzuweisen. Die gute Nachricht ist, dass meine Suche nach "meminfo inkonsistent" diese Seite jetzt aufruft. :)
Eric Asberry
1
Interessanterweise /proc/meminfobringt mich Google hierher, wenn ich jetzt google!
Kristianlm