关于linux硬件检测的命令
目录
1、概念
1.1 计算机硬件:计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。
这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。简言之,计算机硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。
从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
1.2 计算机体系结构,冯诺依曼体系
计算机组成:输入设备——存储器、输出设备、运算器——控制器
2、硬件查询命令
lspci
1)PCI:PCI是一种外设总线规范。总线是一种传输信号的路径或信道。典型情况是,总线是连接于一个或多个导体的电气连线,总线上连接的所有设备可在同一时间收到所有的传输内容。总线由电气接口和编程接口组成。本文讨论Linux 下的设备驱动,所以,重点关注编程接口。
PCI是Peripheral Component Interconnect(外围设备互联)的简称,是普遍使用在桌面及更大型的计算机上的外 设总线。PCI架构被设计为ISA标准的替代品,它有三个主要目标:获得在计算机和外设之间传输数据时更好的性能;尽可能的平台无关;简化往系统中添加和删除外设的工作。
2)lspci命令及参数
-v :显示更多的 PCI 接口装置的详细信息
-vv:比 -v 还要更详细的信息
-n:直接观察 PCI 的 ID 而不是厂商名称
-s:查询指定总线号
第一字段:<bus>:<slot>.<func>(总线:插槽:功能类)
第二字段:设备类
第三字段:供应商
lsusb
1)USB:是英文Universal Serial Bus(通用串行总线)的缩写,而其中文简称为“通串线”,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。
2)lsusb命令及参数
第一字段:usb主控制器号
第二字段:总线上的设备序列号
第三字段:供应商和产品ID
第四字段:供应商和产品ID的字符串表示形式
lsblk
1)Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。
字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。
块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
这两种设备本身并没用严格的区分,主要是字符设备和块设备驱动程序提供的访问接口(file I/O API)是不一样的。本文主要就数据接口、访问接口和设备注册方法对两种设备进行比较
2)参数
NAME : 这是块设备名。
MAJ:MIN : 本栏显示主要和次要设备号。
RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE :本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的
TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。(LCTT译注,此处sr0的RO项没有标记为1,可能存在一些错误)
MOUNTPOINT: 本栏指出设备挂载的挂载点
blkid
所有可用设备:设备通用唯一识别码(UUID) 问卷系统类型及卷标
lscpu
1)CPU:中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。
2)命令及参数
Architecture: i686 # 架构686
CPU(s): 12 # 逻辑cpu
Thread(s) per core: 1 # 每个核心线程数
Core(s) per socket: 6 # 每个物理cpu核数
CPU socket(s): 2 # cpu插槽数
Vendor ID: GenuineIntel #cpu厂商ID是GenuineIntel
CPU family: 6 #cpu系列是6
Model: 23 # 型号23
Stepping: 10 # 步进是10
CPU MHz: 800.000 # cpu主频是800MHz
Virtualization: VT-x # cpu支持的虚拟化技术VT-x
L1d cache: 32K # 一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache: 32K # 一级缓存32K(具体为L1指令缓存为32K)
L2 cache: 3072K # 二级缓存3072K
/proc/cpuinfo
1)/proc:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
2)参数
processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商
cpu family :CPU产品系列代号
model :CPU属于其系列中的哪一代的代号
model name :CPU属于的名字及其编号、标称主频
stepping :CPU属于制作更新版本
cpu MHz :CPU的实际使用主频
cache size :CPU二级缓存大小
physical id :单个CPU的标号
siblings :单个CPU逻辑物理核数
core id :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores :该逻辑核所处CPU的物理核数
apicid :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu :是否具有浮点运算单元(Floating PointUnit)
fpu_exception :是否支持浮点计算异常
cpuid level :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags :当前CPU支持的功能
bogomips :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size :每次刷新缓存的大小单位
cache_alignment:缓存地址对齐单位
address sizes :可访问地址空间位数
power management :对能源管理的支持
/proc/meminfo
MemTotal: 所有可用RAM大小 (即物理内存减去一些预留位和内核的二进制代码大小)
MemFree: LowFree与HighFree的总和,被系统留着未使用的内存
Buffers: 用来给文件做缓冲大小
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache )
SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小已经被交换出来的内存,但仍然被存放在swapfile中。用来在需要的时候很快的被替换而不需要再次打开I/O端口。
Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要否则不会被移作他用
Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径.
HighFree: 该区域不是直接映射到内核空间。内核必须使用不同的手法使用该段内存。
LowFree: 低位可以达到高位内存一样的作用,而且它还能够被内核用来记录一些自己的数据结构。
LowFree: 低位可以达到高位内存一样的作用,而且它还能够被内核用来记录一些自己的数据结构。
SwapTotal: 交换空间的总大小
SwapFree: 未被使用交换空间的大小
Dirty: 等待被写回到磁盘的内存大小。
Writeback: 正在被写回到磁盘的内存大小。
AnonPages:未映射页的内存大小
Mapped: 设备和文件等映射的大小。
Slab: 内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。
SReclaimable:可收回Slab的大小
SUnreclaim:不可收回Slab的大(SUnreclaim+SReclaimable=Slab)
PageTables:管理内存分页页面的索引表的大小。
NFS_Unstable:不稳定页表的大小
VmallocTotal: 可以vmalloc虚拟内存大小
VmallocUsed: 已经被使用的虚拟内存大小。
注:buffers和cache:buffers是指高速缓冲区的大小,是一个空间大小的概念,运行程序常用的数据,在第一次运行时系统会把它们暂时缓存在一个高速的存储区域,以后再用时就直接从这个区域读取数据供程序使用,存取这些数据的介质,因其读写速度比硬盘和内存要快得多,所以,buffers的大小对电脑运行速度的影响是很大的,但这些数据重启电脑或关机后就会自动消失。而cached是指缓存的数据,是真正意义上的实在东西,例如你常用的程序,由于一些数据是这些程序运行经常要使用到的,系统就会把它们形成文件,缓存到一个特定的位置,下次你再运行该程序时,就会自动到缓存的位置读取数据供程序运行使用,存储这些数据的区域是在电脑的硬盘上,理论上讲读写速度是不变的,只是节省了寻找这些数据的时间而也,这样也可间接地提高了电脑的运行效率。buffers是指用来给块设备做的缓冲大小,cached是用来给文件做缓冲。
/proc/interrupts
1)中断:中断是指CPU对系统发生的某个事件作出的一种反应:CPU暂停正在执行的程序,保留现场后自动转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。 中断类型:
强迫性中断:输入输出中断;硬件故障中断;时钟中断;控制台中断;程序性中断;
自愿性中断 CPU暂停现行程序而转去响应中断请求的过程称为中断响应;为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程序,硬件将中断源分为若干个级别,称作中断优先级;中断屏蔽是指在提出中断请求之后,CPU不予响应的状态。
中断处理分为四个阶段:
a.保存被中断程序的现场,其目的是为了在中断处理完之后,可以返回到原来被中断的地方继续执行
b.分析中断源,判断中断原因;
c.转去执行相应的处理程序;
d.恢复被中断程序现场,继续执行被中断程序。
2)命令及参数
中断序号:在CPU0上发生中断的次数 在CPU1上发生中断的次数 可编程的中断控制器 设备名称
hdparm
1)硬盘接口类型:从整体的角度上,硬盘接口分为IDE、SATA、SCSI和光纤通道四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。SATA是目前比较流行的的硬盘接口类型,目前市场上最普及的接口类型,在IDE和SCSI的大类别下,又可以分出多种具体的接口类型,又各自拥有不同的技术规范。具备不同的传输速度,比如ATA100和SATA;Ultra160 SCSI和Ultra320 SCSI都代表着一种具体的硬盘接口,各自的速度差异也较大。
如没有该命令则 yum -y install hdparm 来安装
2)命令及参数
i:显示硬盘的硬件规格信息
t:评估硬盘的read效率
T:评估硬盘的快取的read效率
# 显示硬盘相关信息:
~# hdparm /dev/sda
#查看硬盘的柱面,磁头,扇区,总扇区,起始扇区:
~# hdparm –g /dev/sda
# 测试硬盘的读取效率:
~# hdparm -t /dev/sda
sdparm
1)小型计算机系统接口(英语:Small Computer SystemInterface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。是一种智能的通用接口标准,它具备与多种类型的外设进行通信。SCSI采用ASPI(高级SCSI编程接口)的标准软件接口使驱动器和计算机内部安装的SCSI适配器进行通信。SCSI接口广泛应用于小型机上的高速数据传输技术。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低,以及热插拔等优点。
2)显示硬盘相关信息: #sdparm /dev/sda
注:如果没有该命令则 yum -y install sdparm 来安装
smart
1)Self- Monitoring Analysis andReporting Technology(自动检测分析及报告技术)的简写。可实时对硬盘的磁头单元、硬盘温度、盘片表面介质材料、马达及其驱动系统、硬盘内部电路等进行监测,及时分析并预报硬盘可能发生的问题。
2)命令及参数
-H:查看硬盘健康状态
-t short:后台检测硬盘,耗时短
-t long:后台检测硬盘,耗时长
-C -t short:前台检测硬盘,耗时短
-C -t long:前台检测硬盘,耗时长
smartctl -i -d auto /dev/sda | grep “SMART support is”
# 显示硬盘的信息,查看SMART是否支持
smartctl -s on -d ata /dev/sda # 开启SMART特性
smartctl -H /dev/sda # 检测磁盘健康状态
dmidecode
1)Dmidecode 这款软件允许你在 Linux 系统下获取有关硬件方面的信息。Dmidecode 遵循SMBIOS/DMI 标准,其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等。DMI (Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行DMI充当了管理工具和系统层之间接口的角色。它建立了标准的可管理系统更加方便了电脑厂商和用户对系统的了解。DMI的主要组成部分是Management Information Format (MIF)数据库。这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。
2)查看BIOS信息: dmidecode | head -10
以上输出中,前面4条是dmidecode命令整体信息,“25 structures occupying 844 bytes.”该行指示该机器的DMI记录项总共有25条。后面就是DMI表中各条记录,每条记录的输出格式 如下:
Record Header: Handle {record id}, DMI type {dmitype id},
{record size} bytes
Record Value: {multi line record value}
record id: DMI表中每条记录唯一的标识
dmi type id: 记录的类型,比如BIOS,Memory等
record size: DMI表中该条记录的大小
multi line record values: 多行与该DMI类型相关的字段描述
3) 通过dmidecode查询主板(Base Board)的信息:dmidecode -t 2
# dmidecode –t baseboard 通过设备关键词
# dmidecode –t 16 | grep Max 使用dmidecode命令查询内存支持最大信息:
# dmidecode –t 16 | grep Number 使用dmidecode命令查询内存插槽信息:
# dmidecode -t 17 | grep "Size.*MB" | wc -l 查询内存条数:
# dmidecode -t 17 | grep Size 使用dmidecode命令查询内存单条还是双条:
# dmidecode | grep -i product 查询机器型号:
# dmidecode -t 4 查询物理CPU信息:
.
.
.
.
游走在各发行版间老司机QQ群:905201396
不要嫌啰嗦的新手QQ群:756805267
Debian适应QQ群:912567610