Wir haben einen Server in einem Colocationszentrum (ein realer physischer Server, kein VM), 64-Bit Debian ( uname -r
: 3.16.0-4-amd64
).
/proc/meminfo
meldet ungefähr 4 GiB Gesamtspeicher:
$ head -n 1 /proc/meminfo
MemTotal: 4051692 kB
free
meldet dasselbe (ich habe nur die total
Spalte angesehen; ich spreche nicht von gebraucht, kostenlos, geteilt, Puffer, zwischengespeichert):
$ free -k
total used free shared buffers cached
Mem: 4051692 3867356 184336 220908 63948 1203596
-/+ buffers/cache: 2599812 1451880
Swap: 15728208 652540 15075668
Und so auch dmesg | grep Memory
:
$ dmesg | grep Memory
[ 0.000000] Memory: 4034240K/4185236K available (5287K kernel code, 949K rwdata, 1836K rodata, 1208K init, 840K bss, 150996K reserved)
Aber dmidecode meldet 4 * 2 GiB = 8 GiB RAM, wenn ich es richtig verstehe:
$ sudo dmidecode --type memory
# dmidecode 2.12
SMBIOS 2.6 present.
Handle 0x0008, DMI type 5, 24 bytes
Memory Controller Information
Error Detecting Method: 64-bit ECC
Error Correcting Capabilities:
Single-bit Error Correcting
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 4096 MB
Maximum Total Memory Size: 16384 MB
Supported Speeds:
Other
Supported Memory Types:
DIMM
SDRAM
Memory Module Voltage: 3.3 V
Associated Memory Slots: 4
0x0009
0x000A
0x000B
0x000C
Enabled Error Correcting Capabilities:
Single-bit Error Correcting
Handle 0x0009, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM1A
Bank Connections: 0 1
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 2048 MB (Single-bank Connection)
Enabled Size: 2048 MB (Single-bank Connection)
Error Status: OK
Handle 0x000A, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM1B
Bank Connections: 2 3
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 2048 MB (Single-bank Connection)
Enabled Size: 2048 MB (Single-bank Connection)
Error Status: OK
Handle 0x000B, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM2A
Bank Connections: 4 5
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 2048 MB (Single-bank Connection)
Enabled Size: 2048 MB (Single-bank Connection)
Error Status: OK
Handle 0x000C, DMI type 6, 12 bytes
Memory Module Information
Socket Designation: DIMM2B
Bank Connections: 6 7
Current Speed: Unknown
Type: DIMM SDRAM
Installed Size: 2048 MB (Single-bank Connection)
Enabled Size: 2048 MB (Single-bank Connection)
Error Status: OK
Handle 0x002A, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Single-bit ECC
Maximum Capacity: 16 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x002C, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x002A
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM1A
Bank Locator: BANK0
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Micron
Serial Number: 501C6FDC
Asset Tag: AssetTagNum0
Part Number: 9JSF25672AZ-1G4D1
Rank: Unknown
Handle 0x002E, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x002A
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM1B
Bank Locator: BANK1
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Micron
Serial Number: 2A1C6FDC
Asset Tag: AssetTagNum1
Part Number: 9JSF25672AZ-1G4D1
Rank: Unknown
Handle 0x0030, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x002A
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM2A
Bank Locator: BANK2
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Micron
Serial Number: 511C6FDC
Asset Tag: AssetTagNum2
Part Number: 9JSF25672AZ-1G4D1
Rank: Unknown
Handle 0x0032, DMI type 17, 28 bytes
Memory Device
Array Handle: 0x002A
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM2B
Bank Locator: BANK3
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Micron
Serial Number: 4B1C6FDC
Asset Tag: AssetTagNum3
Part Number: 9JSF25672AZ-1G4D1
Rank: Unknown
Was vermisse ich? Es ist ein Server in einem Colocation Center, daher kann ich leider nicht leicht erkennen, was physisch installiert ist.
Bearbeiten:
man dmidecode
sagt "Meistens sind die in den DMI-Tabellen enthaltenen Informationen ungenau, unvollständig oder einfach falsch." Vielleicht meldet dmidecode einfach falsche Daten?
Bearbeiten: Dies ist kein Duplikat von Warum meldet Linux seltsamerweise "freien" Speicher? . Bei dieser Frage geht es um freien Speicher und um Verwirrung, die durch Puffer und Cache entsteht. Ich mache mir keine Sorgen um freien Speicher, sondern nur um den Gesamtspeicher. Lassen Sie sich von meiner Verwendung des free
Befehls nicht täuschen: Ich habe ihn nicht verwendet, um die Menge an freiem Speicher zu überprüfen, sondern nur die Menge an Gesamtspeicher. Wenn jemand diese Frage immer noch für ein Duplikat hält, erklären Sie mir bitte, warum, weil ich sie nicht verstehe.
Bearbeiten: dmidecode -t1
wie von Lenniey angefordert
$ sudo dmidecode -t1
# dmidecode 2.12
SMBIOS 2.6 present.
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Supermicro
Product Name: X8SIL
Version: 0123456789
Serial Number: 0123456789
UUID: 49434D53-0200-9037-2500-379025009946
Wake-up Type: Power Switch
SKU Number: To Be Filled By O.E.M.
Family: To Be Filled By O.E.M.
/proc/cmdline
einmem=
Boot-Parameter, der den Speicher einschränken könnte, oder wenn Sie ein Multi-CPU-Socket-System haben, in dem nicht alle Sockets belegt sind. Dann kann der Speicher in Speicherbänken installiert werden, die für die fehlende CPU reserviert sind, oder Ihr BIOS wurde für die Speicherspiegelung konfiguriert .free
, die die Gesamtspeichermenge im System anzeigt, nicht den freien Speicher. Oder anders ausgedrückt:head -n 1 /proc/meminfo
gibtMemTotal: 4051692 kB
. Hat nichts mit freiem Speicher oder Speicher zu tun, der von Puffern und Cache belegt wird.dmidecode -t1
, das Board unterstützt 32 GB ECC / 16 GB ungepuffert mit 4 Steckplätzen. Seltsam ...Antworten:
Das Handbuch für dieses Supermicro X8SIL-Motherboard finden Sie unter: http://www.supermicro.com/manuals/motherboard/3420/MNL-1130.pdf
Auf Seite 32 (auch bekannt als 2-10) wird angegeben, dass bei Verwendung von UDIMM-Speicher (Unbuffered) mit einem Rang die maximal unterstützte Speichermenge nur 4 GB beträgt, wenn 1-GB-DIMMs und 8 GB mit 2-GB-DIMMs verwendet werden.
Bei UDIMMs mit zwei Rängen beträgt die maximale Kapazität 16 GB.
Die endgültige maximale Kapazität von 32 GB kann nur mit registrierten (RDIMM) Quad-Rank-Speichermodulen erreicht werden, und die Speicherbusgeschwindigkeit wird bei Verwendung beeinträchtigt.
Und ein bisschen googeln auf "Micron 9JSF25672AZ-1G4D1" brachte mich hierher: https://www.compuram.biz/memory_module/mt9jsf25672az-1g4d1/micron.htm
Es scheint zu bestätigen, dass Micron Technology (MT) 9JSF25672AZ-1G4D1 tatsächlich ein ungepuffertes Single-Rank-Speichermodul mit einer Größe von 2 GB ist.
Auf Seite 34 (oder 2-13) des Handbuchs wird angegeben, dass bei Verwendung von nur 4 GB RAM ein erheblicher Teil davon Systemgeräten zugewiesen und nicht verwendet werden kann. Dies könnte zumindest einen Teil des fehlenden Speichers mit 8 GB ausmachen. Leider beschreibt das Handbuch die Systemgerätezuordnungen im 8-GB-Fall nicht im Detail.
quelle
Es stellt sich heraus, dass eines der Speichermodule fehlerhaft ist, was dazu führt, dass das System das eine und das andere im selben Kanal ignoriert.
Wir haben jetzt den Server in unserem Büro und sehen, dass wirklich 4 DIMM-Module mit jeweils 2 GB vorhanden sind. Ich habe die Module einzeln getestet und festgestellt, dass es ein fehlerhaftes gibt.
(Das erklärt nicht, warum dmidecode für alle vier Module "Fehlerstatus: OK" anzeigt. Ich nehme an, dass dies durch das Zitat "Meistens sind die in den DMI-Tabellen enthaltenen Informationen ungenau, unvollständig oder einfach falsch" erklärt werden kann. in der Manpage)
quelle
@ roel-schroeven: Der Unterschied ergibt sich aus dem, was die verschiedenen Befehle sehen.
Befehle wie "frei" überprüfen den Systemspeicher, wie vom Betriebssystem (Kernel) gemeldet.
Der Befehl " dmidecode " zeigt die DMI-Tabelle der Systemhardware an, die vom SMBIOS-Treiber im System-BIOS gemeldet wurde - siehe vorherige Frage zum DMI-Ursprung .
Daher zeigt dmidecode an, welche Hardware installiert ist, jedoch nicht, was vom Betriebssystem unbedingt verwendet wird. Dies kann irreführend sein, da es beispielsweise Erweiterungskarten enthält, die keinen Betriebssystemtreiber haben, aber dennoch in der Hardwareliste enthalten sind. Da Upgrade-Optionen angezeigt werden, kann dies die Situation weiter verwirren.
Die BIOS-Liste kann nicht immer die richtigen Informationen anzeigen (der von Ihnen erwähnte "ungenaue, unvollständige oder einfach falsche" Haftungsausschluss), wie dies beispielsweise beim RAM der Fall ist. Abhängig von der Einrichtung und der Art der verfügbaren Fehlerkorrektur wird das BIOS dies nicht tun in der Lage sein, erweiterte Informationen wie Fehler zu erkennen. In einer idealen Welt sollte dies zu Informationen wie "Fehlerstatus: Nicht verfügbar" führen, aber (noch) nicht.
quelle