How shall I find out the frequency and type of my current RAM? My OS is Ubuntu 12.04.
lshw command with the
$ sudo lshw -C memory # Some things about firmware and caches *-memory description: System Memory physical id: 13 slot: System board or motherboard size: 8GiB *-bank:0 description: DIMM [empty] product: [Empty] vendor: [Empty] physical id: 0 serial: [Empty] slot: ChannelA-DIMM0 *-bank:1 description: SODIMM DDR3 Synchronous 1600 MHz (0.6 ns) product: M471B5273DH0-CK0 vendor: Samsung physical id: 1 serial: 34A8C7AF slot: ChannelA-DIMM1 size: 4GiB width: 64 bits clock: 1600MHz (0.6ns) # More banks.
As you can see, I'm using DDR3 1600MHz RAM.
Another option is
$ sudo dmidecode -t memory # dmidecode 2.9 SMBIOS 2.5 present. Handle 0x003B, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: Unknown Error Information Handle: Not Provided Number Of Devices: 8 Handle 0x003D, DMI type 17, 27 bytes Memory Device Array Handle: 0x003B Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM_A1 Bank Locator: NODE 0 CHANNEL 0 DIMM 0 Type: Other Type Detail: Synchronous Speed: 1067 MHz (0.9 ns) Manufacturer: 0x0198 Serial Number: 0xB12A9593 Asset Tag: Unknown Part Number: 9965426-037.A00LF # more such devices
This is for a server with ECC memory (as can be seen from the
Error Correction Type field and the difference between
Data Width and
Both tools are dependencies of the
ubuntu-standard package and should be available by default on all Ubuntu systems. There used to be another tool called
hwinfo, which is no longer available for Ubuntu since 13.10.
Above answers are correct; I just wanted to add further by piping the output of command to grep for Type and speed.
sudo dmidecode --type memory | grep -m2 Type
FYI: T in Type must be capital.
This might give either Type: DDR4 OR Type: DDR3
for speed use
sudo dmidecode --type memory | grep -m1 Speed
FYI: -m option of grep is used to limit the number of lines; for example -m2 means 2 lines.
Most of these answers will just give you the nominal clock speed of the memory. It may not be the actual clock speed.
The canonical method is to boot Memtest or if you are so endowed, boot Windows and use CPU-Z.
You can trust BIOS, you can trust Memtest. There are an enormous number of low cost boxes fitted with 1333MHz DDR3 that is actually clocked at 1066MHz. Both DMI decode and LSHW may be deceptive.
💬 REST OF ANSWERS
The rest of methods don't always work, reporting the speed as unknown. Here's one way that never fails.
💿 REQUIRED SOFTWARE
🚄 MEMORY BANDWIDTH
Read the value from the RAM eeprom with:
sudo modprobe eeprom && decode-dimms | grep speed | rev | cut --delimiter=" " --fields=2,3 | rev; sudo modprobe --remove eeprom
The value is returned in MT/s.
🎡 MEMORY FREQUENCY
If you want the value in MHz just divide the previous result by the number of channels the RAM module has, which you can get with:
sudo modprobe eeprom && decode-dimms | grep Ranks | rev | cut --delimiter=" " --fields=1 | rev; sudo modprobe --remove eeprom
🧩 MISCONFIGURED MOTHERBOARD
Note this is the speed of the module, not the speed that the motherboard is configured and capable to use.
For checking if the speed is misconfigured in the motherboard access the BIOS or UEFI, as explained in your motherboard manual.