You need to use biosdecode command line utility. Dmidecode is a tool or dumping a computer’s DMI (some say SMBIOS) table contents in a human-readable format. The output contains a description of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. This command works on Linux, UNIX and *BSD based computers.
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | Yes |
Requirements | Linux terminal |
Category | System Management |
OS compatibility | AlmaLinux • Alpine • Amazon Linux • Arch • CentOS • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu |
Est. reading time | 3 minutes |
Linux check ram speed and type commands
The procedure is as follows:
- Open the terminal application or log in using ssh command.
- Type the “sudo dmidecode --type 17” command.
- Look out for “Type:” line in the output for ram type and “Speed:” for ram speed.
Let us see all examples and commands in details.
Installation
Use the apt command/apt-get command to install dmidecode on a Debian or Ubuntu Linux:$ sudo apt install dmidecode
Fedora Linux user, type the following dnf command:$ sudo dnf install dmidecode
CentOS/RHEL/Oracle/Alma and Rocky Linux user, run the following yum command:$ sudo yum install dmidecode
SUSE/OpenSUSE user, run the following zypper command:$ sudo zypper install dmidecode
Alpine Linux users try the apk command:$ sudo apk add dmidecode
How to check ram speed and type on Linux or Unix-like system
Open a shell prompt and type the following command as root user:$ sudo dmidecode --type 17
OR$ sudo dmidecode --type 17 | more
The output in red color is what you need to look out for:
# dmidecode 2.9 SMBIOS 2.4 present. Handle 0x0018, DMI type 17, 27 bytes Memory Device Array Handle: 0x0017 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: None Locator: J6H1 Bank Locator: CHAN A DIMM 0 Type: DDR2 Type Detail: Synchronous Speed: 800 MHz (1.2 ns) Manufacturer: 0x2CFFFFFFFFFFFFFF Serial Number: 0x00000000 Asset Tag: Unknown Part Number: 0x5A494F4E203830302D3247422D413131382D Handle 0x001A, DMI type 17, 27 bytes Memory Device Array Handle: 0x0017 Error Information Handle: Not Provided Total Width: Unknown Data Width: Unknown Size: No Module Installed Form Factor: DIMM Set: None Locator: J6H2 Bank Locator: CHAN A DIMM 1 Type: DDR2 Type Detail: None Speed: Unknown Manufacturer: NO DIMM Serial Number: NO DIMM Asset Tag: NO DIMM Part Number: NO DIMM
You can just grep speed (see grep command) and skip all other the details using the following syntax:$ sudo dmidecode --type 17 | less
$ sudo dmidecode -t memory | grep -i "speed"
$ sudo dmidecode | grep -A 15 -i "Memory"
$ sudo dmidecode --type 17 | grep -i "speed"
Sample outputs:
Speed: 1333 MHz (0.8 ns) Speed: 1333 MHz (0.8 ns)
Say hello to the lshw command
By default, lshw command may not be installed on your system. Hence, use the apk command on Alpine Linux, dnf command/yum command on RHEL & co, apt command/apt-get command on Debian, Ubuntu & co, zypper command on SUSE/OpenSUSE, pacman command on Arch Linux to install the lshw.
$ sudo lshw -short -C memory
Sample outputs:
/0/0 memory 64KiB BIOS
/0/55/45 memory 1MiB L2 cache
/0/55/46 memory 256KiB L1 cache
/0/55/47 memory 8MiB L3 cache
/0/48 memory 32GiB System Memory
/0/48/0 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/48/1 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/48/2 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/48/3 memory 8GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
Another outputs from my work laptop:
Finding the frequency and type of my current RAM in Linux
Using the memconf to find Linux Memory Speed
We have a handy perl script that displays memory modules installed in a Sun/Oracle Solaris, Linux, FreeBSD or HP-UX system. First, download the script using the wget command (or use the curl command to download file)
export version="v3.17.1" cd /tmp/ wget "https://master.dl.sourceforge.net/project/memconf/${version^}/memconf.${version}.pl.gz" gunzip -v "memconf.${version}.pl.gz" vim "memconf.${version}.pl" sudo perl "memconf.${version}.pl" -v
The output shows the frequency and type of my current RAM installed on my laptop:
memconf: V3.16 27-Jul-2022 https://sourceforge.net/projects/memconf/
hostname: wks01
manufacturer: LENOVO
model: 20QVCTO1WW (Six-Core Hyper-Threaded Intel(R) Corporation Intel(R) Core(TM) i7-9850H @ 2.60GHz)
BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.4), Ubuntu 20.04.5 LTS, 64-bit kernel, Linux 5.15.0-46-generic
U3E1: Intel(R) Corporation Intel(R) Core(TM) i7-9850H @ 2.60GHz cpu, system freq: 100MHz
Memory Error Correction: None
Maximum Memory: 65536MB (64GB)
ChannelA-DIMM0 BANK 0: 32 GB 2667 MT/s Synchronous DDR4 SODIMM, Samsung M471A4G43MB1-CTD
empty memory sockets: ChannelB-DIMM0 BANK 2
total memory = 32768MB (32GB)
Here is another outputs:
memconf: V3.17.1 29-Mar-2024 https://sourceforge.net/projects/memconf/
hostname: wks01
manufacturer: LENOVO
model: 20NJ0007US (Advanced Micro Devices, Inc. AMD Ryzen 7 PRO 3700U w/ Radeon Vega Mobile Gfx 2300MHz, AMD Ryzen 7 PRO 3700U w/ Radeon Vega Mobile Gfx)
BusyBox v1.30.1 (Ubuntu 1:1.30.1-4ubuntu6.4), Ubuntu 20.04.6 LTS, 64-bit kernel, Linux 5.15.0-107-generic
FP5: Advanced Micro Devices, Inc. AMD Ryzen 7 PRO 3700U w/ Radeon Vega Mobile Gfx 2300MHz cpu, system freq: 100MHz
Memory Error Correction: None
Maximum Memory: 65536MB (64GB)
DIMM 0 P0 CHANNEL A: 8192MB 2400 MT/s Synchronous Unbuffered (Unregistered) DDR4 SODIMM, Samsung M471A1G44AB0-CTD
DIMM 0 P0 CHANNEL B: 8192MB 2400 MT/s Synchronous Unbuffered (Unregistered) DDR4 SODIMM, Samsung M471A1K43DB1-CTD
empty memory sockets: None
total memory = 16384MB (16GB)
Finding the frequency of my currently installed RAM using the GUI
You can use the CPU-X GUI. It is similar to CPU-Z from MS-Windows world.
Installing CPU-X
Type command as per your Linux distro. For Debian/Ubuntu Linux try the apt command/apt-get command:$ sudo apt install cpu-x
Fedora user try the dnf command:$ sudo dnf install cpu-x
OpenSUSE or SUSE Linux user try the zypper command (info):$ sudo zypper install cpu-x
FreeBSD Unix user try the pkg command to install the same:$ sudo pkg install cpu-x
Using CPU-X
Simply type the cpu-x command $ sudo cpu-x
Click on the Memory tab to view details:
Conclusion
You learned how to find out ram speed and other information using Linux and Unix terminal commands. For more info see the following tutorials:
- Linux Find The Speed Of Memory Through Software Command Prompt
- Read man pages using the man command:
$ man lshw
$ man dmidecode
Still have a problem? Post your query below.
🥺 Was this helpful? Please add a comment to show your appreciation or feedback.
lol; i like you’re site and your howto’s very very much. However, now I know I have to follow your stuff with an unknown type of ram, at an unknown speed. lol
seriously, keep up the good work! :D
If only there was a way to see what rank it is too :(.
I’m using Ubuntu 8.10 alpha 3 32bits.
Using dmidecode I get the following results:
jp@jp-desktop810:~$ sudo dmidecode –type 17
[sudo] password for jp:
# dmidecode 2.9
SMBIOS 2.2 present.
Invalid entry length (0). DMI table is broken! Stop.
jp@jp-desktop810:~$ sudo dmidecode –type 17 | more
# dmidecode 2.9
SMBIOS 2.2 present.
Invalid entry length (0). DMI table is broken! Stop.
So, dmidecode is same version, SMBIOS is 2.2 instead of 2.4. And I didn’t get the information from dmidecode.
Juan,
You may need to report bug to Ubuntu team. There is not much we can do to fix this issue.
Mark,
ditto
I get only this:
# dmidecode 2.9
SMBIOS 2.3 present.
and no more info!
Tried both commands.
How can i get info like size, speed, type etc. ?
dmidecode –type memory
This should work as well :)
sajmon,
You can try using the following command combination and see if that works:
dmidecode |grep -A20 ^Memory
Gagan Brahmi,
Thanks, works well. :P
I am using Fedora 9. 2.6.25.14-108.fc9.i686
Intel(R) Pentium(R) 4 CPU 3.00GHz
Here is the dmidecode –type 17 output.
No type and speed info.
# dmidecode 2.9
SMBIOS 2.3 present.
Handle 0x0028, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: A0
Bank Locator: Bank0/1
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x0029, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A1
Bank Locator: Bank2/3
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x002A, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: None
Locator: A2
Bank Locator: Bank4/5
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x002B, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0027
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A3
Bank Locator: Bank6/7
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
What will be the problem?
Is this a white box?? That is what I can make out. Just try the following command to see the server model:
dmidecode –type system
or
dmidecode –type 1
Thanks A Lot for this information
Thank u So Much very useful tips..
Thank You very much. Keep this up.
Many thanks – useful tip!
Awesome dude…
Thanks for the post! This helped me out with a production server I couldn’t turn off. :)
I have the same problem. Speed : Unknown.
Running Ubuntu 9.04.
I get the following:
$ sudo dmidecode –type 17 | more
bash: $: command not found
[root@localhost bob]# demidecode –type 17
bash: demidecode: command not found
[root@localhost bob]# demidecode -type system
bash: demidecode: command not found
You show the command you type as:
[root@localhost bob]# demidecode –type 17
bash: demidecode: command not found
Yet the command should be:
[root@localhost bob]# dmidecode –type 17
Note the misspelling… the command is ‘dmidecode’ not ‘demidecode’.
Hi
Thanks for your good article
Unfortunately dmidecode can not give correct information about my memory!!
I have 4Gig DDR3 but dmideocde can not determine type my ram,and shoe “type= other” and “speed: 667Mhz”.
But speed of my ram is 1333 MHz.
Thanks for nay help or guidance
@nima
DDR = Double Data Rate
so if a clock speed of 667Mhz is displayed the data rate speed is: 1334Mhz
Hi
@munzli
Thanks for your reply
According to wikipedia http://en.wikipedia.org/wiki/Ddr3 :
DDR3 modules can transfer data at a rate of 800–2133 MT/s using both rising and falling edges of a 400–1066 MHz I/O clock. Sometimes, a vendor may misleadingly advertise the I/O clock rate by labeling the MT/s as MHz.
1333 is data rate not clock rate :P
I addition wikipedia web page, there is one good table for comparing.
Thanks again.
Thanks you for you information.
It is very very useful.
^^
Thanks for the tip! Knew this would be out there somewhere for a Linux machine since it can pretty much tell you every thing you want to know about your equipment. Glad there are people to pass on help.
Thanks!
It was very helpful dmicode –type 17
:)
Cheers
1333MHz PC3-1066 DDR3 DIMM Desktop Memory KVR1333D3N9K2/4G (Electronics) I scuuessfclly paired these sticks with Kingston KVR1333D3K2/4GR from another retailer in a dual-channel RAM configuration. So that makes a total of 4 sticks, 8 GB. In order to take advantage of this much memory, I’m running a 64-bit operating system (as opposed to a 32-bit one). These are DDR3 memory sticks, so be sure you have an AM3 motherboard if you like AMD processors, or whatever on the Intel side handles DDR3 if you go for Intel processors.
I typed: sudo dmidecode –type 17
and received information that the speed of my RAM is unknown. Here is the output:
Any ideas would be appreciated?
Superb. Thank you!
awesome man ! great tricks
The ram in one of my workstations shows:
Total Width: 72 bits
Data Width: 64 bits
Type Detail: Synchronous Unbuffered (Unregistered)
I imagine that the 72 vs 64 means it’s ECC but the type detail means “unregistered.”
This seem right?
On SalixOS dmidecode as in the article but with type 16 gave me the maximum amount of RAM that could be installed, handy, as HP’s own support page had misleading info.
Also, dmidecode > /home/usernamedude/Documents/dmi.txt writes a WHOLE LOT OF INFO to a text file in the given path.
Thanks for the article, this was really helpful.
FWIW, this only works on Intel-based Linux. There is no equivalent I could find for my RaspberryPi box.
Yes, but have you tried dmesg output?
Sure, but it’s not quite the same.
CoreFreq shows in a console UI the DRAM CAS & others timings , but also its frequency and the Bus speed, all queried from the chipset.
CoreFreq is on the
dmidecode is notorious for being incorrect, it might be better know but historically it lied, a lot. But there’s a chance you can talk to the eeprom on the dimms directly by using decode-dimms. It’s in the i2c-tools package in Debian. You’ll need to load the eeprom module, but if you BIOS is cool it’ll pass the call through to the RAM itself and you can get the real info. If the BIOS isn’t cool, it’ll block the call and you won’t be able to talk to the chips :-/.
It worked perfectly on my Thinkpad laptop as I wanted an upgrade from 8GB to 16GB, and I wasn’t sure about the RAM speed. I got the correct module from a local store and now typing this command from the same laptop. Beers on me next time we are actually in the same place! Cheers, mate.
You can grep the desired information with one call by using regex e.g.:
Thanks, love. memconf is what I needed. T
This is so well put. Great work, This was definitely what I was looking for. I am bookmarking this for later.
nice !