'free' и '/proc/meminfo/ сообщают о меньшем объеме памяти, чем'dmidecode'

У нас есть сервер в центре колокейшн (настоящий физический сервер, а не виртуальная машина), на котором работает 64-битный Debian (uname -r: 3.16.0-4-amd64).

/proc/meminfoсообщает о 4 ГБ общей памяти:

$ head -n 1 /proc/meminfo
MemTotal:        4051692 kB

free сообщает то же самое (я только посмотрел на total колонка; Я не говорю о б, свободных, общих, буферах, кешируемых)

$ free -k
             total       used       free     shared    buffers     cached
Mem:       4051692    3867356     184336     220908      63948    1203596
-/+ buffers/cache:    2599812    1451880
Swap:     15728208     652540   15075668

И так же 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)

Но dmidecode сообщает, что 4 * 2 ГБ = 8 ГБ ОЗУ, если я правильно понимаю:

$ 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

Что мне не хватает? Это сервер в центре колокейшн, поэтому, к сожалению, я не могу легко увидеть, что установлено физически.

Редактировать:man dmidecode говорит: "Чаще всего информация, содержащаяся в таблицах DMI, является неточной, неполной или просто неверной". Может быть, dmidecode просто сообщает неверные данные?

Изменить: Это не дубликат Почему Linux сообщает "свободную" память странно?, Этот вопрос касается свободной памяти и путаницы, возникающей из-за того, что буферы и кеш убираются. Я не беспокоюсь о свободной памяти, только о полной памяти. Не позволяйте мне использовать free Команда обмануть вас: я не использовал его, чтобы посмотреть на объем свободной памяти, только объем общей памяти. Если кто-то все еще считает этот вопрос дубликатом, пожалуйста, объясните мне, почему, потому что я не понимаю.

Редактировать: dmidecode -t1 по просьбе Ленни

$ 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.

1 ответ

Руководство к этой материнской плате Supermicro X8SIL доступно по адресу: http://www.supermicro.com/manuals/motherboard/3420/MNL-1130.pdf

На странице 32 (он же 2-10) это указывает на то, что если используется одноуровневая память без буферизации (UDIMM), максимальный поддерживаемый объем памяти будет составлять только 4 ГБ при использовании модулей DIMM 1 ГБ и 8 ГБ с модулями DIMM 2 ГБ.

При использовании двухуровневых UDIMM максимальная емкость составит 16 ГБ.

Максимальная максимальная емкость 32 ГБ может быть достигнута только с помощью модулей памяти Registered (RDIMM) с четырьмя рангами, и при их использовании скорость шины памяти будет снижена.

И немного погуглить на "Micron 9JSF25672AZ-1G4D1" привело меня сюда: https://www.compuram.biz/memory_module/mt9jsf25672az-1g4d1/micron.htm

Похоже, это подтверждает, что Micron Technology (MT) 9JSF25672AZ-1G4D1 действительно является небуферизованным модулем памяти одного ранга размером 2 ГБ.

На стр. 34 (или 2-13) руководства указано, что при использовании только 4 ГБ ОЗУ значительная ее часть будет выделена системным устройствам и не будет использоваться. Это может объяснить как минимум часть недостающей памяти с 8 ГБ. К сожалению, в руководстве подробно не описывается распределение системных устройств в случае 8 ГБ.

@roel-schroeven: Разница заключается в том, на что смотрят различные команды.

Команды типа "свободный" смотрят на системную память, как сообщает ОС (ядро).

Команда " dmidecode" просматривает таблицу DMI системного оборудования, как сообщается драйвером SMBIOS из системного BIOS - см. Предыдущий вопрос о происхождении DMI.

Таким образом, dmidecode покажет, какое оборудование установлено, но не то, которое обязательно используется ОС. Это может вводить в заблуждение, поскольку может включать, например, карты расширения, которые не имеют драйвера ОС, но тем не менее присутствуют в списке оборудования. Кроме того, поскольку он показывает параметры обновления, это может еще больше запутать ситуацию.

В списке BIOS не всегда может отображаться правильная информация (упомянутый вами отказ от "неточной, неполной или просто неправильной" информации), как, например, в случае с ОЗУ, в зависимости от настроек и типа исправления ошибок, BIOS не будет быть в состоянии обнаружить расширенную информацию, такую ​​как ошибки. В идеальном мире это должно привести к такой информации, как "Состояние ошибки: не доступно", но это не так (пока).

Оказывается, один из модулей памяти неисправен, из-за чего система игнорирует тот и другой в одном и том же канале.

Теперь у нас есть сервер в нашем офисе, и мы видим, что на самом деле есть 4 модуля DIMM, каждый по 2 ГБ. Я протестировал модули один за другим и обнаружил, что они неисправны.

(Это не объясняет, почему dmidecode показывает "Error Status: OK" для всех четырех модулей. Полагаю, это можно объяснить цитатой "Чаще всего информация, содержащаяся в таблицах DMI, является неточной, неполной или просто неправильной". в справочной странице)

Другие вопросы по тегам