'free' and '/proc/meminfo/ report less total memory than 'dmidecode'
We have a server in a colocation centre (a real physical server, not a VM), running 64-bit Debian (uname -r
: 3.16.0-4-amd64
).
/proc/meminfo
reports about 4 GiB total memory:
$ head -n 1 /proc/meminfo
MemTotal: 4051692 kB
free
reports the same (I only looked at the total
column; I'm not talking about used, free, shared, buffers, cached):
$ free -k
total used free shared buffers cached
Mem: 4051692 3867356 184336 220908 63948 1203596
-/+ buffers/cache: 2599812 1451880
Swap: 15728208 652540 15075668
And so does 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)
But dmidecode reports 4 * 2 GiB = 8 GiB of RAM, if I understand it correctly:
$ 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
What am I missing? It's a server in a colocation center, so unfortunately I can't easily see what is installed physically.
Edit:
man dmidecode
says "More often than not, information contained in the DMI tables is inaccurate, incomplete or simply wrong.". Maybe dmidecode simply reports wrong data?
Edit:
This is not a duplicate of Why is Linux reporting “free” memory strangely?. That question is about free memory, and confusion arising from buffers and cache taking away from that. I am not concerned about free memory, only about total memory. Don't let my usage of the free
command fool you: I didn't use it to look at the amount of free memory, only the amount of total memory. If someone still thinks this question is a duplicate, please explain me why because I don't understand.
Edit: dmidecode -t1
as requested by Lenniey
$ 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.
Solution 1:
The manual for that Supermicro X8SIL motherboard is available at: http://www.supermicro.com/manuals/motherboard/3420/MNL-1130.pdf
On page 32 (aka 2-10) it indicates that if Unbuffered (UDIMM) single-rank memory is used, the maximum amount of memory supported will be only 4 GB when using 1 GB DIMMs and 8 GB with 2 GB DIMMs.
With dual-rank UDIMMs, the maximum capacity would be 16 GB.
The ultimate maximum capacity of 32 GB can only be reached by using Registered (RDIMM) quad-rank memory modules, and the memory bus speed will take a hit when using them.
And a bit of googling on "Micron 9JSF25672AZ-1G4D1" brought me here: https://www.compuram.biz/memory_module/mt9jsf25672az-1g4d1/micron.htm
It seems to confirm that Micron Technology (MT) 9JSF25672AZ-1G4D1 is indeed an unbuffered single-rank memory module of size 2 GB.
On page 34 (or 2-13) of the manual it indicates that when only 4 GB of RAM is used, a significant amount of it will be allocated to system devices and won't be usable. This might account for at least some of the missing memory with 8 GB installed too. Unfortunately the manual doesn't describe in detail the system device allocations in the 8 GB case.