Some time back I was using a command called meminfo in Solaris to find the memory information in Solaris. It is indeed a nice script written by schmidt http://www.4schmidts.com/memconf.html .
Later, I moved my role from supporting Solaris systems to Linux systems and I was struggling to get the same piece of info in Linux about the memory bank/slot and how memory is present in each memory bank. Today I got an audit work to validate the system data that someone has filled about Linux servers. So, this time I couldn’t escape and I had to find a way out. I always knew that there should be info in dmidecode command, but as usual my laziness was stopping me from looking in to the output.
So finally I had to push my lazy attitude and dive in to the Info which dmidecode was giving. I was really surprised to see that there is enough info that we can grab from the dmidecode output. So here is my analysis.
- First check the actual memory Info from the either “top” or “free -m” command.
- Check the “dmidecode” output for the DIMM slot and each RAM size
FREE COMMAND OUTPUT
So the below command shows that we have around 2GB of memory installed in the system.
[root@bravo]# free -m
total used free shared buffers cached
Mem: 2026 1585 440 0 222 551
-/+ buffers/cache: 811 1215
Swap: 4094 0 4094
TOP COMMAND OUTPUT
Let’s verify our understanding of memory available using the TOP command which also shows that we have approx 2GB memory approx.
[root@bravo]# top
top – 13:18:56 up 216 days, 4:12, 3 users, load average: 0.14, 0.11, 0.09
Tasks: 199 total, 1 running, 198 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.8% us, 1.4% sy, 0.0% ni, 97.4% id, 0.3% wa, 0.0% hi, 0.0% si
Mem: 2074900k total, 1623648k used, 451252k free, 227816k buffers
Swap: 4192924k total, 296k used, 4192628k free, 565160k cached
DMIDECODE COMMAND
Run the DMIDECODE command and look for the data where the word “Physical Memory Array” starts and go through each line to get detailed information. In some new systems you can also use the command dmidecode –s memory and dmidecode –t 17 , where “s” means string and “t” means type. Let’s just use dmidecode here for now.
Summary of the memory data
——————————————————————————————-
Maximum memory that the ON BOARD memory slots can accept is = 8GB
Type of memory = DDR
Error Correction Type: Single-bit ECC
Size of each DIMM = 1024 MB (1GB)
DIMM Speed = 333 MHz (3.0 ns)
Number of DIMM slots = Total 4 DIMM slots and only 2 DIMM slots are filled with 1GB memory each
Note: where ever the Memory module is not installed the “Size” would show as “Size: No Module Installed”
——————————————————————————————-
[root@bravo]# dmidecode | more
So here is the summary of the Info that we are looking from the Important Information we have from the dmidecode data
Handle 0×1000
DMI type 16, 15 bytes.
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Single-bit ECC
Maximum Capacity: 8 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0×1100
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0×1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: 1
Locator: DIMM 01
Bank Locator: Not Specified
Type: DDR
Type Detail: Synchronous
Speed: 333 MHz (3.0 ns)
Handle 0×1101
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0×1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: 1
Locator: DIMM 02
Bank Locator: Not Specified
Type: DDR
Type Detail: Synchronous
Speed: 333 MHz (3.0 ns)
Handle 0×1102
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0×1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: No Module Installed
Form Factor: DIMM
Set: 2
Locator: DIMM 03
Bank Locator: Not Specified
Type: DDR
Type Detail: Synchronous
Speed: 333 MHz (3.0 ns)
Handle 0×1103
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0×1000
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: No Module Installed
Form Factor: DIMM
Set: 2
Locator: DIMM 04
Bank Locator: Not Specified
Type: DDR
Type Detail: Synchronous
Speed: 333 MHz (3.0 ns)
So here is my learning for the day. So I am signing of for the day looking forward to learn something new tomorrow. Infact there are couple of things that I have learnt today and I would try to either share it today or tomorrow in my new post.
Also, one thing that I started believing these days is that there is no job which is small or waste of time. We just have to look at the learning that we can grab from it. I am sure every job teaches us something might not be technical always but I am sure we would have some thing to learn from it directly or in directly.
Adios ! Amigos !
The desire to write grows with writing.Desiderius Erasmus

This did not work for me:
# dmidecode
# dmidecode 2.11
SMBIOS 2.3 present.
4 structures occupying 501 bytes.
Table at 0x000F9FAF.
Handle 0×0000, DMI type 0, 24 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: P2.30
Release Date: 09/25/2006
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 256 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25″/1.2 MB floppy services are supported (int 13h)
3.5″/720 kB floppy services are supported (int 13h)
3.5″/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
AGP is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
BIOS boot specification is supported
BIOS Revision: 8.12
Handle 0×0001, DMI type 1, 27 bytes
System Information
Manufacturer:
Product Name: 939Dual-SATA2
Version: 1.00
Serial Number: 00000000
UUID: 00020003-0004-0005-0006-000700080009
Wake-up Type: Power Switch
SKU Number: TBD
Family: TBD
Handle 0×0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer:
Product Name: 939Dual-SATA2
Version: 1.00
Serial Number: 00000000
Asset Tag: 00000000
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: TBD
Chassis Handle: 0×0003
Type: Motherboard
Contained Object Handles: 0
Handle 0×0003, DMI type 4, 35 bytes
Processor Information
Socket Designation: CPUSocket
Type: Central Processor
Family: Unknown
Manufacturer: AMD
ID: B1 0F 02 00 FF FB 8B 07
Version: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
Voltage: 3.3 V 2.9 V
External Clock: 200 MHz
Max Speed: 2200 MHz
Current Speed: 2200 MHz
Status: Populated, Enabled
Upgrade: Unknown
L1 Cache Handle: 0×0004
L2 Cache Handle: 0×0005
L3 Cache Handle: Not Provided
Serial Number: TBD
Asset Tag: TBD
Part Number: TBD
Wrong DMI structures length: 501 bytes announced, structures occupy 335 bytes.
# dmidecode -t 17
# dmidecode 2.11
SMBIOS 2.3 present.
Wrong DMI structures length: 501 bytes announced, structures occupy 335 bytes.
# dmidecode -s memory
Invalid string keyword: memory
Valid string keywords are:
bios-vendor
bios-version
bios-release-date
system-manufacturer
system-product-name
system-version
system-serial-number
system-uuid
baseboard-manufacturer
baseboard-product-name
baseboard-version
baseboard-serial-number
baseboard-asset-tag
chassis-manufacturer
chassis-type
chassis-version
chassis-serial-number
chassis-asset-tag
processor-family
processor-manufacturer
processor-version
processor-frequency
Nice to know about DMIDecode. Keep posting more.