Linux Get Memory Slot Information

broken image


Browse other questions tagged linux memory hardware ram or ask your own question. The Overflow Blog How to write an effective developer resume: Advice from a hiring manager. Get the Linux Kernel Name. When you precisely want the command to print the kernel name, you will use the following command: $ uname -s. Output: The above output has displayed Linux as my kernel name. Get the Linux Kernel Release. In order to print the release information of your kernel, use the following command: $ uname -r.

Finding RAM size details in Linux for a System admin is very easy task. We can use free command to check how much RAM is present in our system. But when you want to find how many RAM/Memory sa lots are present in your system is bit tricky one. One way to do open your system and check what sa lots are there and how much RAM. Instead of doing this as a Hardware engineer we can use a command to check which sa lot is having below details.

  • How much RAM
  • Speed of the RAM
  • Maximum RAM supported by that machine
  • RAM location etc.

As you are already aware of dmidecode command to get all the system hardware info. We will use the same command for getting our RAM details.

To Find RAM details like maximum RAM, location of RAM etc we can use -t option with dmidecode as shown below

dmidecode -t 16

Output:

# dmidecode 2.11
SMBIOS 2.7 present.

Handle 0x000F, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 16 GB
Error Information Handle: No Error
Number Of Devices: 2

If you see the above output we can figure it out how much maximum RAM this machine support, number of RAM devices and location etc.

To get actual RAM details such as how many sa lots, actual RAM present etc, use -t 17 option in dmidecode command

dmidecode -t 17

Output:

# dmidecode 2.11
SMBIOS 2.7 present.

Handle 0x0010, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x000F
Error Information Handle: 0x0011
Total Width: 64 bit's
Data Width: 64 bit's
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: DIMM0
Bank Locator: BANK 0
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Kingston
Serial Number: 4B29A74B
Asset Tag: 0123456789
Part Number: 99U5428-046.A00LF
Rank: Unknown
Configured Clock Speed: 1333 MHz

Linux Get Memory Speed

Handle 0x0013, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x000F
Error Information Handle: 0x0014
Total Width: 64 bit's
Data Width: 64 bit's
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: DIMM1
Bank Locator: BANK 2
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Kingston
Serial Number: 4729BF4B
Asset Tag: 0123456789
Part Number: 99U5428-046.A00LF
Rank: Unknown
Configured Clock Speed: 1333 MHz

If we want to see complete RAM details we can use -t memory option to get the details. Note this is a combination of 16 and 17 options

dmidecode -t memory

Output:

# dmidecode 2.11
SMBIOS 2.7 present.

Handle 0x000F, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 16 GB
Error Information Handle: No Error
Number Of Devices: 2

Handle 0x0010, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x000F
Error Information Handle: 0x0011
Total Width: 64 bit's
Data Width: 64 bit's
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: DIMM0
Bank Locator: BANK 0
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Kingston
Serial Number: 4B29A74B
Asset Tag: 0123456789
Part Number: 99U5428-046.A00LF
Rank: Unknown
Configured Clock Speed: 1333 MHz

Handle 0x0013, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x000F
Error Information Handle: 0x0014
Total Width: 64 bit's
Data Width: 64 bit's
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: DIMM1
Bank Locator: BANK 2
Type: DDR3
Type Detail: Synchronous
Speed: 1333 MHz
Manufacturer: Kingston
Serial Number: 4729BF4B
Asset Tag: 0123456789
Part Number: 99U5428-046.A00LF
Rank: Unknown
Configured Clock Speed: 1333 MHz

Linux Get Memory Slot Information

Some of the valid keywords/types you can use and find different details are as follows.

bios

system

baseboard
chassis
processor
memory
cache
connector
sa lot

We can even use lshw command to get RAM/Memory details as well Cache details such as L1, L2 and L3 levels.

Get

lshw -class memory

Slot

*-firmware
description: BIOS
vendor: Hewlett-Packard
physical id: 0
version: F.22
date: 07/27/2011
size: 1MiB
capacity: 2496KiB
capabilities: pci upgrade shadowing cdboot bootselect edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb biosbootspecification uefi
*-memory
description: System Memory
physical id: f
sa lot: System board or motherboard
size: 8GiB
*-bank:0
description: SODIMM DDR3 Synchronous 1333 MHz (0.8 ns)
product: 99U5428-046.A00LF
vendor: Kingston
physical id: 0
serial: 4B29A74B
sa lot: DIMM0
size: 4GiB
width: 64 bit's
clock: 1333MHz (0.8ns)
*-bank:1
description: SODIMM DDR3 Synchronous 1333 MHz (0.8 ns)
product: 99U5428-046.A00LF
vendor: Kingston
physical id: 1
serial: 4729BF4B
sa lot: DIMM1
size: 4GiB
width: 64 bit's
clock: 1333MHz (0.8ns)
*-cache:0
description: L1 cache
physical id: 1c
sa lot: L1 Cache
size: 32KiB
capacity: 32KiB
capabilities: synchronous internal write-through instruction
*-cache:1
description: L2 cache
physical id: 1d
sa lot: L2 Cache
size: 256KiB
capacity: 256KiB
capabilities: synchronous internal write-through unified
*-cache:2
description: L3 cache
physical id: 1e
sa lot: L3 Cache
size: 3MiB
capacity: 3MiB
capabilities: synchronous internal write-through unified
*-cache
description: L1 cache
physical id: 1b
sa lot: L1 Cache
size: 32KiB
capacity: 32KiB
capabilities: synchronous internal write-through data

Do let us know if there is any way to find RAM sa lot details.

The following two tabs change content below.
Mr Surendra Anne is from Vijayawada, Andhra Pradesh, India. He is a Linux/Open source supporter who believes in Hard work, A down to earth person, Likes to share knowledge with others, Loves dogs, Likes photography. He works as Devops Engineer with Taggle systems, an IOT automatic water metering company, Sydney . You can contact him at surendra (@) linuxnix dot com.
  • Docker: How to copy files to/from docker container - June 30, 2020
  • Anisble: ERROR! unexpected parameter type in action: Fix - June 29, 2020
  • FREE: JOIN OUR DEVOPS TELEGRAM GROUPS - August 2, 2019
  • Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
  • How to use ohai/chef-shell to get node attributes - July 19, 2018

How to find memory slots, DIMM info in linux from dmidecode

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.

Linux Get Memory Slot Information

[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

Linux Get Free Memory

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 memoryslots can accept is= 8GB

Type of memory = DDR

Linux Check Memory Info

Error Correction Type: Single-bit ECC

Size of each DIMM = 1024 MB (1GB)

Linux Get Memory Slot Information Free

DIMM Speed = 333 MHz (3.0 ns)

Number of DIMM slots = Total4 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 0x1000
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 0x1100
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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 0x1101
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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 0x1102
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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)

Memory

Some of the valid keywords/types you can use and find different details are as follows.

bios

system

baseboard
chassis
processor
memory
cache
connector
sa lot

We can even use lshw command to get RAM/Memory details as well Cache details such as L1, L2 and L3 levels.

lshw -class memory

*-firmware
description: BIOS
vendor: Hewlett-Packard
physical id: 0
version: F.22
date: 07/27/2011
size: 1MiB
capacity: 2496KiB
capabilities: pci upgrade shadowing cdboot bootselect edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb biosbootspecification uefi
*-memory
description: System Memory
physical id: f
sa lot: System board or motherboard
size: 8GiB
*-bank:0
description: SODIMM DDR3 Synchronous 1333 MHz (0.8 ns)
product: 99U5428-046.A00LF
vendor: Kingston
physical id: 0
serial: 4B29A74B
sa lot: DIMM0
size: 4GiB
width: 64 bit's
clock: 1333MHz (0.8ns)
*-bank:1
description: SODIMM DDR3 Synchronous 1333 MHz (0.8 ns)
product: 99U5428-046.A00LF
vendor: Kingston
physical id: 1
serial: 4729BF4B
sa lot: DIMM1
size: 4GiB
width: 64 bit's
clock: 1333MHz (0.8ns)
*-cache:0
description: L1 cache
physical id: 1c
sa lot: L1 Cache
size: 32KiB
capacity: 32KiB
capabilities: synchronous internal write-through instruction
*-cache:1
description: L2 cache
physical id: 1d
sa lot: L2 Cache
size: 256KiB
capacity: 256KiB
capabilities: synchronous internal write-through unified
*-cache:2
description: L3 cache
physical id: 1e
sa lot: L3 Cache
size: 3MiB
capacity: 3MiB
capabilities: synchronous internal write-through unified
*-cache
description: L1 cache
physical id: 1b
sa lot: L1 Cache
size: 32KiB
capacity: 32KiB
capabilities: synchronous internal write-through data

Do let us know if there is any way to find RAM sa lot details.

The following two tabs change content below.
Mr Surendra Anne is from Vijayawada, Andhra Pradesh, India. He is a Linux/Open source supporter who believes in Hard work, A down to earth person, Likes to share knowledge with others, Loves dogs, Likes photography. He works as Devops Engineer with Taggle systems, an IOT automatic water metering company, Sydney . You can contact him at surendra (@) linuxnix dot com.
  • Docker: How to copy files to/from docker container - June 30, 2020
  • Anisble: ERROR! unexpected parameter type in action: Fix - June 29, 2020
  • FREE: JOIN OUR DEVOPS TELEGRAM GROUPS - August 2, 2019
  • Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
  • How to use ohai/chef-shell to get node attributes - July 19, 2018

How to find memory slots, DIMM info in linux from dmidecode

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

Linux Get Free Memory

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 memoryslots can accept is= 8GB

Type of memory = DDR

Linux Check Memory Info

Error Correction Type: Single-bit ECC

Size of each DIMM = 1024 MB (1GB)

Linux Get Memory Slot Information Free

DIMM Speed = 333 MHz (3.0 ns)

Number of DIMM slots = Total4 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 0x1000
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 0x1100
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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 0x1101
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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 0x1102
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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 0x1103
DMI type 17, 23 bytes.
Memory Device
Array Handle: 0x1000
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





broken image