Find The Ram Speed in Linux from a CLI Shell

Here is the next in my series of posts as I tweak the new tools server to reach its full potential. I recently added a Intel i7 965 Extreme chip to the server and I am trying to get all the kinks ironed out. One thing I suspect is that the ram is not operating at its full potential. Both the ram and the chip list that they are capable of reaching a 1600 MHz speed so I want to get them running at that speed. Normally these things are fairly easy in Windows where we have a GUI and all kinds of fancy oveclockers tools but as you know from previous articles this server is a extreme definition of hybrid and it also runs a server version of Cent OS so we have no GUI. This has brought me to discover many new and interesting Linux CLI tools. Today I will show two different ways to check your ram speed and also get some other useful information.

The first tool I found was called dmidecode and its man page is here

On my system the tool was already installed. It actual gives lots of useful BIOS related information however I was only concerned with the ram. The out put isĀ arranged in types so ram is type 17.

Issue the command with type 17 as the argument:

[root@tools ~]# sudo dmidecode --type 17
# dmidecode 2.10
SMBIOS 2.5 present.

Handle 0x0011, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x000F
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM0
        Bank Locator: BANK0
        Type: Other
        Type Detail: Other
        Speed: 1333 MHz
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: AssetTagNum0
        Part Number: CMD12GX3M6A1600C8

Handle 0x0013, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x000F
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM1
        Bank Locator: BANK1
        Type: Other
        Type Detail: Other
        Speed: 1333 MHz
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: AssetTagNum1
        Part Number: CMD12GX3M6A1600C8

Handle 0x0015, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x000F
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM2
        Bank Locator: BANK2
        Type: Other
        Type Detail: Other
        Speed: 1333 MHz
        Manufacturer: Manufacturer02
        Serial Number: 00000000
        Asset Tag: AssetTagNum2
        Part Number:

Handle 0x0017, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x000F
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM3
        Bank Locator: BANK3
        Type: Other
        Type Detail: Other
        Speed: 1333 MHz
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: AssetTagNum3
        Part Number: CMD12GX3M6A1600C8

Handle 0x0019, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x000F
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM4
        Bank Locator: BANK4
        Type: Other
        Type Detail: Other
        Speed: 1333 MHz
        Manufacturer: Corsair
        Serial Number: 00000000
        Asset Tag: AssetTagNum4
        Part Number: CMD12GX3M6A1600C8

Handle 0x001B, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x000F
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM5
        Bank Locator: BANK5
        Type: Other
        Type Detail: Other
        Speed: 1333 MHz
        Manufacturer: Manufacturer05
        Serial Number: 00000000
        Asset Tag: AssetTagNum5
        Part Number:

Or to just get the speed:

[root@tools ~]# sudo dmidecode --type 17 | grep Speed
        Speed: 1333 MHz
        Speed: 1333 MHz
        Speed: 1333 MHz
        Speed: 1333 MHz
        Speed: 1333 MHz
        Speed: 1333 MHz

As you can see my ram is not operating at 1600 MHz which is what I initially suspected. Now since I am not familier with this Linux tool I decided to get a second opinion.

I found a second tool called lshw and its man page is here

This tool was not installed on my system but it was available in my local repo. I also checked the debian repo and the Gentoo repo and it was available in both of those.

A simple yum install lshw was all I needed to install it:

[root@tools ~]# yum install lshw

After reviewing the man page I determined the correct command syntax:

[root@tools ~]# lshw -C memory
  *-firmware
       description: BIOS
       vendor: American Megatrends Inc.
       physical id: 0
       version: P2.60 (10/30/2009)
       size: 64KiB
       capacity: 960KiB
       capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification netboot
  *-cache:0
       description: L1 cache
       physical id: 5
       slot: L1-Cache
       size: 256KiB
       capacity: 256KiB
       capabilities: internal write-through instruction
  *-cache:1
       description: L2 cache
       physical id: 6
       slot: L2-Cache
       size: 1MiB
       capacity: 1MiB
       capabilities: internal write-through unified
  *-cache:2
       description: L3 cache
       physical id: 7
       slot: L3-Cache
       size: 8MiB
       capacity: 8MiB
       capabilities: internal write-back unified
  *-memory
       description: System Memory
       physical id: f
       slot: System board or motherboard
       size: 12GiB
     *-bank:0
          description: DIMM 1333 MHz (0.8 ns)
          product: CMD12GX3M6A1600C8
          vendor: Corsair
          physical id: 0
          serial: 00000000
          slot: DIMM0
          size: 2GiB
          width: 64 bits
          clock: 1333MHz (0.8ns)
     *-bank:1
          description: DIMM 1333 MHz (0.8 ns)
          product: CMD12GX3M6A1600C8
          vendor: Corsair
          physical id: 1
          serial: 00000000
          slot: DIMM1
          size: 2GiB
          width: 64 bits
          clock: 1333MHz (0.8ns)
     *-bank:2
          description: DIMM 1333 MHz (0.8 ns)
          vendor: Manufacturer02
          physical id: 2
          serial: 00000000
          slot: DIMM2
          size: 2GiB
          width: 64 bits
          clock: 1333MHz (0.8ns)
     *-bank:3
          description: DIMM 1333 MHz (0.8 ns)
          product: CMD12GX3M6A1600C8
          vendor: Corsair
          physical id: 3
          serial: 00000000
          slot: DIMM3
          size: 2GiB
          width: 64 bits
          clock: 1333MHz (0.8ns)
     *-bank:4
          description: DIMM 1333 MHz (0.8 ns)
          product: CMD12GX3M6A1600C8
          vendor: Corsair
          physical id: 4
          serial: 00000000
          slot: DIMM4
          size: 2GiB
          width: 64 bits
          clock: 1333MHz (0.8ns)
     *-bank:5
          description: DIMM 1333 MHz (0.8 ns)
          vendor: Manufacturer05
          physical id: 5
          serial: 00000000
          slot: DIMM5
          size: 2GiB
          width: 64 bits
          clock: 1333MHz (0.8ns)

Or there is actually a short version:

[root@tools ~]# lshw -short -C memory
H/W path             Device     Class       Description
=======================================================
/0/0                            memory      64KiB BIOS
/0/4/5                          memory      256KiB L1 cache
/0/4/6                          memory      1MiB L2 cache
/0/4/7                          memory      8MiB L3 cache
/0/f                            memory      12GiB System Memory
/0/f/0                          memory      2GiB DIMM 1333 MHz (0.8 ns)
/0/f/1                          memory      2GiB DIMM 1333 MHz (0.8 ns)
/0/f/2                          memory      2GiB DIMM 1333 MHz (0.8 ns)
/0/f/3                          memory      2GiB DIMM 1333 MHz (0.8 ns)
/0/f/4                          memory      2GiB DIMM 1333 MHz (0.8 ns)
/0/f/5                          memory      2GiB DIMM 1333 MHz (0.8 ns)

So now I have two linux command line tools telling me that my memory is only operating at 1333 MHz so I definitely need to look into why and how to fix it.

I think once I get all this work done I may create a script which will install all these tools and excecute them and create a sort of report for people who are interested in Linux over clocking and general hardware performance.

Share