Ich habe einen CentOS 5.10 ( 32-Bit ) Server auf VMWare. Es sind 4 GB RAM zugewiesen.
Wenn ich renne, dmidecode -t 17 | grep Size | grep MB
sehe ich:
Size: 4096 MB
Doch wenn ich renne free
, sehe ich:
total used free shared buffers cached
Mem: 3107140 1239244 1867896 0 332 400464
-/+ buffers/cache: 838448 2268692
Swap: 2096472 0 2096472
Warum besteht eine Diskrepanz zwischen der Gesamtzahl der Speicherberichte free
und der dmidecode
Ausgabe?
Der Kernel, den ich verwende, ist:
2.6.18-371.4.1.el5 #1 SMP Thu Jan 30 06:09:24 EST 2014 i686 i686 i386 GNU/Linux
Zugegeben, der Kernel läuft nicht, PAE
aber ich dachte, das wäre nur für Speicher mit mehr als 4 GB erforderlich .
Ich weiß, dass mir etwas Einfaches fehlt - kann jemand bitte näher darauf eingehen?
Zusätzliche Anmerkungen / Bemerkungen
Es sieht definitiv so aus, als würde mein Kernel eine Menge Speicher für andere Dinge reservieren. Folgendes sehe ich in /var/log/dmesg
:
Linux version 2.6.18-371.4.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Thu Jan 30 06:09:24 EST 2014
BIOS-provided physical RAM map:
BIOS-e820: 0000000000010000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bfef0000 (usable)
BIOS-e820: 00000000bfef0000 - 00000000bfeff000 (ACPI data)
BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS)
BIOS-e820: 00000000bff00000 - 00000000c0000000 (usable)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
Warning only 4GB will be used.
Use a PAE enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f6bf0
Memory for crash kernel (0x0 to 0x0) notwithin permissible range
/proc/meminfo
?/proc/iomem
zeigt Ihnen den Speicher, der von Geräten verwendet wird, für die Linux einen Treiber hat. Die e820-Speicherzuordnung (ganz am Anfangdmesg
eines frisch gestarteten Kernels) zeigt Ihnen, was Ihr BIOS / EFI davon hält, welche Regionen reserviert sind. AFAIK ist eine manuelle Aufgabe ohne Werkzeugunterstützung.Die Ausgabe des
free
Befehls zählt nicht den reservierten Kernelspeicher und einige andere kleine Bits. Sie werden diese Diskrepanz sogar in einem 64-Bit-Kernel und sogar mit <2 GB RAM sehen.quelle
free
, ein 4-GB-Computer 3948 MB.Die kritische Zeile aus Ihrer physischen RAM-Karte ist folgende:
Diese Zeile zeigt, dass 1 GB (0x40000000 Byte, hexadezimal) des physischen RAM Ihres Systems vom BIOS oberhalb der 4-GB-Grenze zugeordnet wird, sodass ein 32-Bit-System ohne PAE nicht darauf zugreifen kann.
quelle