首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux工具|运维工具dmidecode使用小妙招

Linux工具|运维工具dmidecode使用小妙招

原创
作者头像
六月暴雪飞梨花
发布2024-12-04 19:40:06
发布2024-12-04 19:40:06
1.3K0
举报

好事发生

这里推荐一篇实用的文章:深度解析 Spring 源码:三级缓存机制探究,作者:【忆遂愿】。

这篇文章作者主要讲什么是三级缓存、三级缓存的实现原理、三级缓存的使用场景与注意事项、出现问题以及解决方法。


1 梳理背景

运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。

作为一名运维工程师,操作系统知识 怎么可以落下,我们需要深入理解Linux系统,包括其文件系统、进程管理、用户和权限管理等。今天就先讲讲如何查看计算机设备篇——dmidecode。到了这里,实践得出真理,开始动手操作下吧。梳理这篇博文主要是为了获取知识,在运维时可以很好的提供数据,提升效率。当初在查询CPU时,使用了lscpu也无法查询到数据信息,使用这个命令就可以很便捷的查找,所以dmidecode通常用于故障排除和硬件升级前确保兼容性时的问题排查比较多。而我当时在麒麟系统中查询CPU信息却无法查询,只能选择使用dmidecode命令查询。

2 环境检查

无论做什么工作,我们需要先做的就是熟悉我们的环境。而我们需要了解我们的工作电脑运行如何,是什么配置也成了我们的首要任务。

首先,执行命令查看当前的操作系统。

代码语言:javascript
复制
[root@localhost ~]# uname -a
Linux xxx.xxx 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]#

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@localhost ~]#

其次,我们需要检查下我们的机器是否有这个命令。

代码语言:javascript
复制
[root@localhost ~]# dmidecode -V
3.2
[root@localhost ~]#

3 详解dmidecode命令

3.1 dmidecode是什么

dmidecode是一个Linux命令,主要用于从DMI(Desktop Management Interface,桌面管理接口)数据库中获取有关计算机硬件的信息。DMI信息是一个由主板或系统制造商遵循SMBIOS(System Management BIOS,系统管理BIOS)规范所存储的,包含了系统硬件组件描述及其他有用信息(如序列号和BIOS修订)的数据库。主要适用于Linux及其类似系统,如RHEL、CentOS、Debian、麒麟(Kylin)、优信(UOS)和SUSE等。

3.2 dmidecode命令用途

dmidecode命令可以输出多种类型的硬件信息,包括BIOS信息(bios)、系统信息(system)、主板信息(baseboard)、处理器信息(processor)、内存信息(memory)、缓存信息、机箱信息、电源信息等等。

3.3 查看帮助命令

在Linux环境中,有很多约定俗成的命令,可以帮助我们很快的投入到工作中,例如--help 。下面是我在我的机器上面执行了帮助命令,现在看着是不是一目了然?

代码语言:javascript
复制
[root@localhost ~]# dmidecode --help
Usage: dmidecode [OPTIONS]
Options are:
 -d, --dev-mem FILE     Read memory from device FILE (default: /dev/mem)
 -h, --help             Display this help text and exit
 -q, --quiet            Less verbose output
 -s, --string KEYWORD   Only display the value of the given DMI string
 -t, --type TYPE        Only display the entries of given type
 -H, --handle HANDLE    Only display the entry of given handle
 -u, --dump             Do not decode the entries
     --dump-bin FILE    Dump the DMI data to a binary file
     --from-dump FILE   Read the DMI data from a binary file
     --no-sysfs         Do not attempt to read DMI data from sysfs files
     --oem-string N     Only display the value of the given OEM string
 -V, --version          Display the version and exit
[root@localhost ~]#

从上面的帮助文档查阅,dmidecode命令的基本语法为:dmidecode [OPTIONS],实际上可以直接执行这个命令便也可以获取到信息。

4 dmidecode使用示例

4.1 查看所有硬件信息

代码语言:javascript
复制
[root@localhost ~]# dmidecode
## 下面会输出所有的硬件信息
……此处省略千字
Handle 0x0269, DMI type 33, 31 bytes
64-bit Memory Error Information
	Type: OK
	Granularity: Unknown
	Operation: Unknown
	Vendor Syndrome: Unknown
	Memory Array Address: Unknown
	Device Address: Unknown
	Resolution: Unknown

Handle 0x026A, DMI type 126, 4 bytes
Inactive
……此处省略千字

4.2 查看BIOS相关信息

BIOS中通常自检程序、系统设置信息、系统引导程序、底层服务,除了这些还包含了其自身的版本信息,包括版本号、发布日期等。

查看BIOS信息,可以使用 -t 命令后面增加 需要查询的主体,例如bios、system,也可以使用全称--type。主体可以参考下附录表

代码语言:javascript
复制
[root@localhost ~]# dmidecode --type bios
……省略无关信息
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
	Vendor: Phoenix Technologies LTD
	Version: 6.00
	Release Date: 02/27/2020
	Address: 0xEA480
	Runtime Size: 88960 bytes
	ROM Size: 64 kB
	Characteristics:
		ISA is supported
		PCI is supported
		PC Card (PCMCIA) is supported
		PNP is supported
		APM is supported
		BIOS is upgradeable
		BIOS shadowing is allowed
		ESCD support is available
		Boot from CD is supported
		Selectable boot is supported
		EDD is supported
		Print screen service is supported (int 5h)
		8042 keyboard services are supported (int 9h)
		Serial services are supported (int 14h)
		Printer services are supported (int 17h)
		CGA/mono video services are supported (int 10h)
		ACPI is supported
		Smart battery is supported
		BIOS boot specification is supported
		Function key-initiated network boot is supported
		Targeted content distribution is supported
	BIOS Revision: 4.6
	Firmware Revision: 0.0

[root@localhost ~]#

4.3 查看系统相关信息

获取到与计算机系统相关的硬件信息,dmidecode --type system中主要包含:

  • 系统信息:制造商、产品名称、版本、序列号、UUID、唤醒类型、SKU号码、系统所属的系列或家族。
  • 系统事件日志信息:事件的类型、时间戳、事件描述、事件错误编码、警告或信息性事件、事件发生日期和时间、事件错误的代码、影响的硬件组件。
  • 系统重置信息:重置类型、重置原因、系统重置发生的时间。
  • 系统Boot信息:状态。
代码语言:javascript
复制
[root@localhost ~]# dmidecode --type system
……省略无关信息
Handle 0x0001, DMI type 1, 27 bytes
## 系统信息
System Information
	Manufacturer: VMware, Inc.
	Product Name: VMware Virtual Platform
	Version: None
	Serial Number: xxxx
	UUID: xxxx
	Wake-up Type: Power Switch
	SKU Number: Not Specified
	Family: Not Specified

Handle 0x01A1, DMI type 15, 29 bytes
## 系统事件日志信息
System Event Log
	Area Length: 16 bytes
	Header Start Offset: 0x0000
	Header Length: 16 bytes
	Data Start Offset: 0x0010
	Access Method: General-purpose non-volatile data functions
	Access Address: 0x0000
	Status: Invalid, Full
	Change Token: 0x00000036
	Header Format: Type 1
	Supported Log Type Descriptors: 3
	Descriptor 1: POST error
	Data Format 1: POST results bitmap
	Descriptor 2: Single-bit ECC memory error
	Data Format 2: Multiple-event
	Descriptor 3: Multi-bit ECC memory error
	Data Format 3: Multiple-event

Handle 0x0265, DMI type 23, 13 bytes
## 系统重置信息
System Reset
	Status: Enabled
	Watchdog Timer: Present
	Boot Option: Do Not Reboot
	Boot Option On Limit: Do Not Reboot
	Reset Count: Unknown
	Reset Limit: Unknown
	Timer Interval: Unknown
	Timeout: Unknown

Handle 0x0268, DMI type 32, 20 bytes
## 系统Boot信息
System Boot Information
	Status: No errors detected

[root@localhost ~]#

4.4 查看主板相关信息

使用dmidecode --type baseboard可以查看当前主板信息。包括制造商、名称、版本、序列号等等。

代码语言:javascript
复制
[root@localhost ~]# dmidecode --type baseboard
……省略无关信息
Handle 0x0002, DMI type 2, 15 bytes
## 主板基础信息
Base Board Information
	Manufacturer: Intel Corporation
	Product Name: XXXX
	Version: None
	Serial Number: None
	Asset Tag: Not Specified
	Features: None
	Location In Chassis: Not Specified
	Chassis Handle: 0x0000
	Type: Unknown
	Contained Object Handles: 0

Handle 0x019F, DMI type 10, 8 bytes
## 主板设备1
On Board Device 1 Information
	Type: Video
	Status: Disabled
	Description: VMware SVGA II
## 主板设备2
On Board Device 2 Information
	Type: Sound
	Status: Disabled
	Description: XXX

[root@localhost ~]#

4.5 查看处理器相关信息

使用dmidecode --type processor 可以获取计算机系统中处理器(CPU)相关的详细信息,我在实际运维中也是需要此处信息,所以做了最详细的梳理。处理器有很多,这里我只拿出来一个梳理下就好了,有些我也不知道是啥,就没有标注。

处理器详细信息主要包括处理器的制造商名称、编号、版本型号、最大速度、当前速度、序列号、核心数、每插槽启用核心数、每核心线程数等等。

代码语言:javascript
复制
[root@localhost ~]# dmidecode --type processor | more
……省略无关信息
Handle 0x0004, DMI type 4, 42 bytes
## 处理器信息
Processor Information
  ## CPU插槽指定序列号
	Socket Designation: CPU #000
	Type: Central Processor
	Family: Unknown
  ## 处理器的制造商名称
	Manufacturer: GenuineIntel
	ID: XXXXX
  ## 处理器的版本号或修订号
	Version: Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz
  ## 电压
	Voltage: 3.3 V
	External Clock: Unknown
  ## 处理器的最大时钟速度(以MHz或GHz为单位)
	Max Speed: 30000 MHz
  ## 处理器当前时钟速度
	Current Speed: 2200 MHz
	Status: Populated, Enabled
	Upgrade: ZIF Socket
	L1 Cache Handle: 0x0094
	L2 Cache Handle: 0x0114
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
  ## 核心数
	Core Count: 2
  ## 开启核心
	Core Enabled: 2
  ## 处理器特性
	Characteristics:
    ## 64位能力
		64-bit capable
    ## 多核
		Multi-Core
		Execute Protection

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU #001
	Type: Central Processor
--More--

4.6 查看内存相关信息

使用dmidecode --type memory命令可以获取到计算机系统中内存模块(RAM)相关的详细信息,如内存的类型,如DDR3、DDR4、LPDDR4等,内存模块的容量,内存大小通常以MB或GB为单位,内存插槽数量信息,内存模块信息包括安装大小、插槽描述信息等。

代码语言:javascript
复制
[root@localhost ~]# dmidecode --type memory | more
……省略无关信息
Handle 0x0084, DMI type 5, 46 bytes
## 内存控制信息
Memory Controller Information
	Error Detecting Method: None
	Error Correcting Capabilities:
		None
	Supported Interleave: One-way Interleave
	Current Interleave: One-way Interleave
  ## 内存模块大小、内存总大小
	Maximum Memory Module Size: 32768 MB
	Maximum Total Memory Size: 491520 MB
	Supported Speeds:
		70 ns
		60 ns
  ## 支持内存类型
	Supported Memory Types:
		FPM
		EDO
		DIMM
		SDRAM
	## 内存插槽数量信息
	Associated Memory Slots: 15
		……省略无关信息
	Enabled Error Correcting Capabilities:
		None

Handle 0x0085, DMI type 6, 12 bytes
## 内存模块信息
Memory Module Information
	Socket Designation: RAM socket #0
	Bank Connections: None
	Current Speed: Unknown
	Type: EDO DIMM
	Installed Size: 8192 MB (Single-bank Connection)
	Enabled Size: 8192 MB (Single-bank Connection)
	Error Status: OK

Handle 0x0086, DMI type 6, 12 bytes
Memory Module Information
	Socket Designation: RAM socket #1
	Bank Connections: None
--More--

4.7查看特定信息

上述命令执行之后会有很多信息打印在控制台上,可以通过管道的形式有选择的打印。例如直接获取内存的核心数。通过查看可以直接获取到核心数量为 2;也可以使用以前博文中的命令 lscpu 来查看;也可使用熟悉的cpuinfo来查看。至于使用哪一种方式,取决自己的熟练度。

代码语言:javascript
复制
[root@localhost ~]# dmidecode | grep "Core Count" |  sort -u
	Core Count: 2
[root@localhost ~]#
[root@localhost ~]# lscpu | grep "Core"
Core(s) per socket:    2
[root@localhost ~]#
[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores"
cpu cores	: 2
cpu cores	: 2
cpu cores	: 2
cpu cores	: 2
[root@localhost ~]#

附录表

-t命令之后的主体可是如下信息:

查询内容

主体名称

BIOS信息

bios

系统信息

system

主板信息

baseboard

处理器信息

processor

内存信息

memory

机箱

chassis

缓存

cache

连接器

connector

插槽

slot

总结

本篇主要想了解下dmidecode这个命令的用法以及用途,多学习一些命令总有用处,我在运维时有使用一些命令在麒麟系统中无法查阅到的信息,可以采取此种方式。

引用

  1. https://www.nongnu.org/dmidecode/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 好事发生
  • 1 梳理背景
  • 2 环境检查
  • 3 详解dmidecode命令
    • 3.1 dmidecode是什么
    • 3.2 dmidecode命令用途
    • 3.3 查看帮助命令
  • 4 dmidecode使用示例
    • 4.1 查看所有硬件信息
    • 4.2 查看BIOS相关信息
    • 4.3 查看系统相关信息
    • 4.4 查看主板相关信息
    • 4.5 查看处理器相关信息
    • 4.6 查看内存相关信息
    • 4.7查看特定信息
  • 附录表
  • 总结
  • 引用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档