
这里推荐一篇实用的文章:深度解析 Spring 源码:三级缓存机制探究,作者:【忆遂愿】。
这篇文章作者主要讲什么是三级缓存、三级缓存的实现原理、三级缓存的使用场景与注意事项、出现问题以及解决方法。
运维工程师(Operations)是负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI的专业人员。他们的基本职责是负责服务的稳定性,确保服务可以7*24H不间断地为用户提供服务。
作为一名运维工程师,操作系统知识 怎么可以落下,我们需要深入理解Linux系统,包括其文件系统、进程管理、用户和权限管理等。今天就先讲讲如何查看计算机设备篇——dmidecode。到了这里,实践得出真理,开始动手操作下吧。梳理这篇博文主要是为了获取知识,在运维时可以很好的提供数据,提升效率。当初在查询CPU时,使用了lscpu也无法查询到数据信息,使用这个命令就可以很便捷的查找,所以dmidecode通常用于故障排除和硬件升级前确保兼容性时的问题排查比较多。而我当时在麒麟系统中查询CPU信息却无法查询,只能选择使用dmidecode命令查询。
无论做什么工作,我们需要先做的就是熟悉我们的环境。而我们需要了解我们的工作电脑运行如何,是什么配置也成了我们的首要任务。
首先,执行命令查看当前的操作系统。
[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 ~]#其次,我们需要检查下我们的机器是否有这个命令。
[root@localhost ~]# dmidecode -V
3.2
[root@localhost ~]#dmidecode是一个Linux命令,主要用于从DMI(Desktop Management Interface,桌面管理接口)数据库中获取有关计算机硬件的信息。DMI信息是一个由主板或系统制造商遵循SMBIOS(System Management BIOS,系统管理BIOS)规范所存储的,包含了系统硬件组件描述及其他有用信息(如序列号和BIOS修订)的数据库。主要适用于Linux及其类似系统,如RHEL、CentOS、Debian、麒麟(Kylin)、优信(UOS)和SUSE等。
dmidecode命令可以输出多种类型的硬件信息,包括BIOS信息(bios)、系统信息(system)、主板信息(baseboard)、处理器信息(processor)、内存信息(memory)、缓存信息、机箱信息、电源信息等等。
在Linux环境中,有很多约定俗成的命令,可以帮助我们很快的投入到工作中,例如--help 。下面是我在我的机器上面执行了帮助命令,现在看着是不是一目了然?
[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],实际上可以直接执行这个命令便也可以获取到信息。
[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
……此处省略千字BIOS中通常自检程序、系统设置信息、系统引导程序、底层服务,除了这些还包含了其自身的版本信息,包括版本号、发布日期等。
查看BIOS信息,可以使用 -t 命令后面增加 需要查询的主体,例如bios、system,也可以使用全称--type。主体可以参考下附录表。
[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 ~]#获取到与计算机系统相关的硬件信息,dmidecode --type system中主要包含:
[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 ~]#使用dmidecode --type baseboard可以查看当前主板信息。包括制造商、名称、版本、序列号等等。
[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 ~]#使用dmidecode --type processor 可以获取计算机系统中处理器(CPU)相关的详细信息,我在实际运维中也是需要此处信息,所以做了最详细的梳理。处理器有很多,这里我只拿出来一个梳理下就好了,有些我也不知道是啥,就没有标注。
处理器详细信息主要包括处理器的制造商名称、编号、版本型号、最大速度、当前速度、序列号、核心数、每插槽启用核心数、每核心线程数等等。
[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--使用dmidecode --type memory命令可以获取到计算机系统中内存模块(RAM)相关的详细信息,如内存的类型,如DDR3、DDR4、LPDDR4等,内存模块的容量,内存大小通常以MB或GB为单位,内存插槽数量信息,内存模块信息包括安装大小、插槽描述信息等。
[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--上述命令执行之后会有很多信息打印在控制台上,可以通过管道的形式有选择的打印。例如直接获取内存的核心数。通过查看可以直接获取到核心数量为 2;也可以使用以前博文中的命令 lscpu 来查看;也可使用熟悉的cpuinfo来查看。至于使用哪一种方式,取决自己的熟练度。
[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这个命令的用法以及用途,多学习一些命令总有用处,我在运维时有使用一些命令在麒麟系统中无法查阅到的信息,可以采取此种方式。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。