Forward from: http://blog.sina.com.cn/s/blog_69cc2f0b0100wk5g.html
1、查看内存槽数、那个槽位插了内存,大小是多少
dmidecode以一种可读的方式dump出机器的DMI(Desktop ManagementInterface)信息。这些信息包括了硬件以及BIOS,既可以得到当前的配置,也可以得到系统支持的最大配置,比如说支持的最大内存数等。
DMI有人也叫SMBIOS(System ManagementBIOS),这两个标准都由DMTF(Desktop Management Task Force)开发。
dmidecode的输出格式一般如下:
----------------------------------------
Handle 0x0002
DMI type 2, 8bytes
Base BoardInformation
Manufacturer:Intel
ProductName: C440GX+
Version:727281-0001
SerialNumber: INCY92700942
----------------------------------------
其中的前三行都称为记录头(recoce Header), 其中包括了:
1、recodeid(handle): DMI表中的记录标识符,这是唯一的,比如上例中的Handle 0x0002。
2、dmi type id:记录的类型,譬如说:BIOS,Memory,上例是type 2,即"Base Board Information"
3、recode size:DMI表中对应记录的大小,上例为8 bytes.(不包括文本信息,所有实际输出的内容比这个size要更大。)
记录头之后就是记录的值:
4、decoded values:记录值可以是多行的,比如上例显示了主板的制造商(manufacturer)、model、version以及serialNumber。
dmidecode的使用方法
1. 最简单的的显示全部dmi信息:
# dmidecode
这样将输出所有的dmi信息,你可能会被一大堆的信息吓坏,通常可以使用下面的方法。
2.更精简的信息显示:
# dmidecode -q
-q(--quite) 只显示必要的信息,这个很管用哦。
3.显示指定类型的信息:
通常我只想查看某类型,比如CPU,内存或者磁盘的信息而不是全部的。这可以使用-t(--typeTYPE)来指定信息类型:
# dmidecode -t bios
# dmidecode -t bios, processor(这种方式好像不可以用,必须用下面的数字的方式)
# dmidecode -t0,4 (显示bios和processor)
dmidecode到底支持哪些type?
这些可以在man dmidecode里面看到:
文本参数支持:
bios, system,baseboard, chassis, processor, memory, cache, connector, slot
数字参数支持很多:(见附录)
4.通过关键字查看信息:
比如只想查看序列号,可以使用:
# dmidecode -s system-serial-number
-s (--string keyword)支持的keyword包括:
-------------------------------------------------------------------------------------
bios-vendor,bios-version,bios-release-date,
system-manufacturer,system-product-name, system-version, system-serial-number,
baseboard-manu-facturer,baseboard-product-name, baseboard-version, baseboard-serial-number,baseboard-asset-tag,
chassis-manufacturer,chas-sis-version, chassis-serial-number, chassis-asset-tag,
processor-manufacturer,processor-version.
-------------------------------------------------------------------------------------
5.示例
5.1 查看当前内存和支持的最大内存
Linux下,可以使用free或者查看meminfo来获得当前的物理内存:
# free
total used free shared buffers cached
Mem: 8182532 8010792 171740 0 148472 4737896
-/+buffers/cache: 3124424 5058108
Swap: 4192956 3304 4189652
# grep MemTotal /proc/meminfo
MemTotal: 8182532 kB
这里显示了当前服务器的物理内存是8GB。
服务器到底能扩展到多大的内存?
#dmidecode -t 16
# dmidecode 2.7
SMBIOS 2.4 present.
Handle 0x0013, DMI type 16, 15bytes.
Physical Memory Array
Location:System Board Or Motherboard
Use:System Memory
ErrorCorrection Type: Multi-bit ECC
MaximumCapacity: 64GB (可扩展到64GB)
ErrorInformation Handle: Not Provided
NumberOf Devices: 4
但是,事实不一定如此,因此插槽可能已经插满了。也就是我们还必须查清这里的8G到底是4*2GB,2*4GB还是其他?
如果是4*2GB,那么尽管可以扩展到64GB,但是插槽已经插满,无法扩展了:
#dmidecode -t 17
# dmidecode 2.7
SMBIOS 2.4 present.
Handle 0x0015, DMI type 17, 27bytes.
Memory Device
ArrayHandle: 0x0013
ErrorInformation Handle: Not Provided
TotalWidth: 72 bits
DataWidth: 64 bits
Size:2048 MB 【插槽1有1条2GB内存】
FormFactor: DIMM
Set:None
Locator:DIMM00
BankLocator: BANK
Type:Other
TypeDetail: Other
Speed:667 MHz (1.5 ns)
Manufacturer:
SerialNumber: BZACSKZ001
AssetTag: RAM82
PartNumber: MT9HTF6472FY-53EA2
Handle 0x0017, DMI type 17, 27bytes.
Memory Device
ArrayHandle: 0x0013
ErrorInformation Handle: Not Provided
TotalWidth: 72 bits
DataWidth: 64 bits
Size:2048 MB 【插槽2有1条2GB内存】
FormFactor: DIMM
Set:None
Locator:DIMM10
BankLocator: BANK
Type:Other
TypeDetail: Other
Speed:667 MHz (1.5 ns)
Manufacturer:
SerialNumber: BZACSKZ001
AssetTag: RAM83
PartNumber: MT9HTF6472FY-53EA2
Handle 0x0019, DMI type 17, 27bytes.
Memory Device
ArrayHandle: 0x0013
ErrorInformation Handle: Not Provided
TotalWidth: 72 bits
DataWidth: 64 bits
Size:2048 MB 【插槽3有1条2GB内存】
FormFactor: DIMM
Set:None
Locator:DIMM20
BankLocator: BANK
Type:Other
TypeDetail: Other
Speed:667 MHz (1.5 ns)
Manufacturer:
SerialNumber: BZACSKZ001
AssetTag: RAM84
PartNumber: MT9HTF6472FY-53EA2
Handle 0x001B, DMI type 17, 27bytes.
Memory Device
ArrayHandle: 0x0013
ErrorInformation Handle: Not Provided
TotalWidth: 72 bits
DataWidth: 64 bits
Size:2048 MB 【插槽4有1条2GB内存】
FormFactor: DIMM
Set:None
Locator:DIMM30
BankLocator: BANK
Type:Other
TypeDetail: Other
Speed:667 MHz (1.5 ns)
Manufacturer:
SerialNumber: BZACSKZ001
AssetTag: RAM85
PartNumber: MT9HTF6472FY-53EA2
根据上面输出可以发现,如果要扩展,只有将上面的内存条换成16GB的,才能达到4*16GB=64GB的最大支持内存。
附录:
dmidecode支持的数字参数:
Type Information
----------------------------------------
0 BIOS
1 System
2 BaseBoard
3 Chassis
4 Processor
5 MemoryController
6 MemoryModule
7 Cache
8 PortConnector
9 SystemSlots
10 On BoardDevices
11 OEMStrings
12 SystemConfiguration Options
13 BIOSLanguage
14 GroupAssociations
15 System EventLog
16 PhysicalMemory Array
17 MemoryDevice
18 32-bit MemoryError
19 Memory ArrayMapped Address
20 Memory DeviceMapped Address
21 Built-inPointing Device
22 PortableBattery
23 SystemReset
24 HardwareSecurity
25 System PowerControls
26 VoltageProbe
27 CoolingDevice
28 TemperatureProbe
29 ElectricalCurrent Probe
30 Out-of-bandRemote Access
31 Boot IntegrityServices
32 SystemBoot
33 64-bit MemoryError
34 ManagementDevice
35 ManagementDevice Component
36 ManagementDevice Threshold Data
37 MemoryChannel
38 IPMIDevice
39 PowerSupply