wiki/运维/操作系统/Linux/笔记/3.硬件管理.md
2026-04-08 15:02:24 +08:00

5.9 KiB
Raw Blame History

1、硬件管理概览

在 Linux 中查看硬件信息,常见关注点主要有三类:

  • CPU核心数、线程数、架构、缓存、是否虚拟化
  • 内存总量、可用量、缓存、Swap 使用情况
  • 磁盘:设备、分区、文件系统类型、挂载点

做系统巡检或排障时,通常也是按这个顺序查看。

2、查看 CPU 信息

2.1 使用 lscpu

lscpu 是查看 CPU 信息最直观的命令,适合快速了解当前机器的处理器概况。

[root@tencentos ~]# lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
Model name:          Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
CPU MHz:             2494.140
Hypervisor vendor:   KVM
Virtualization type: full
L1d cache:           32K
L1i cache:           32K
L2 cache:            4096K
L3 cache:            36608K

2.2 重点字段说明

  • ArchitectureCPU 架构,例如 x86_64 表示 64 位架构
  • CPU op-mode(s)CPU 支持运行 32 位和 64 位操作系统
  • CPU(s):逻辑 CPU 数量,不一定等于物理核心数
  • Thread(s) per core:每个核心的线程数,开启超线程时通常大于 1
  • Core(s) per socket:每个物理 CPU 的核心数
  • Socket(s):物理 CPU 颗数
  • Model nameCPU 型号
  • Hypervisor vendor:当前是否运行在虚拟化环境中,例如 KVM
  • L1/L2/L3 cache:不同层级的 CPU 缓存大小

2.3 使用 /proc/cpuinfo

如果你想看更底层、更详细的信息,可以直接查看:

[root@tencentos ~]# cat /proc/cpuinfo

这个文件会按每个逻辑 CPU 分别列出详细参数,例如:

  • processor:逻辑 CPU 编号
  • vendor_idCPU 厂商
  • model nameCPU 型号名称
  • cpu MHz:当前频率
  • cache size:缓存大小
  • flagsCPU 支持的指令集特性
  • bugs:已知 CPU 漏洞或风险标记
  • address sizes:物理地址和虚拟地址位数

2.4 使用场景建议

  • 快速巡检:优先用 lscpu
  • 查看更细节的 CPU 参数:使用 /proc/cpuinfo
  • 判断是否是虚拟机:关注 Hypervisor vendor
  • 判断核心、线程、物理 CPU 数:结合 CPU(s)Thread(s) per coreCore(s) per socketSocket(s) 一起看

3、查看内存信息

3.1 使用 free -h

free 是查看内存最常用的命令,-h 可以用更适合阅读的单位显示。

[root@tencentos ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.7Gi       323Mi       341Mi        35Mi       1.0Gi       1.2Gi
Swap:            0B          0B          0B

3.2 重点字段说明

  • total:内存总量
  • used:已使用内存
  • free:完全空闲的内存
  • shared:共享内存
  • buff/cache:被缓冲区和页缓存占用的内存
  • available:当前可供应用程序使用的内存,通常比 free 更有参考价值
  • Swap:交换分区使用情况

3.3 使用 /proc/meminfo

如果需要更完整的内存明细,可以查看:

[root@tencentos ~]# cat /proc/meminfo

其中比较常见的字段有:

  • MemTotal:物理内存总量
  • MemFree:当前空闲内存
  • MemAvailable:当前可用内存
  • Buffers:块设备缓冲区使用量
  • Cached:页缓存使用量
  • SwapTotalSwap 总量
  • SwapFreeSwap 剩余量
  • Slab:内核 slab 缓存占用
  • Dirty:等待写回磁盘的数据量

3.4 排障时怎么看内存

  • 日常巡检时优先看 free -h
  • 不要只盯着 free,应重点关注 available
  • 如果 Swap 持续上升,通常需要关注内存压力
  • 如果想进一步排查缓存、页表、HugePages 等问题,再看 /proc/meminfo

4、查看磁盘与分区信息

4.1 使用 lsblk

lsblk 用于查看块设备、分区和挂载关系,是查看磁盘结构时最常用的命令之一。

[root@tencentos ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  50G  0 disk
└─vda1 253:1    0  50G  0 part /

4.2 重点字段说明

  • NAME:设备名称
  • MAJ:MIN:主设备号和次设备号
  • RM:是否可移动设备,1 表示是,0 表示否
  • SIZE:设备或分区大小
  • RO:是否只读
  • TYPE:设备类型,例如 diskpart
  • MOUNTPOINT:挂载点

4.3 使用 /proc/partitions

[root@tencentos ~]# cat /proc/partitions
major minor  #blocks  name
253        0  52428800 vda
253        1  52427759 vda1

这个文件更偏底层,适合查看系统识别到的块设备和分区情况。

4.4 使用 blkid

blkid 可以查看设备的文件系统类型、UUID、分区 UUID 等信息。

[root@tencentos ~]# blkid
/dev/vda1: UUID="ded6c45d-0699-43e5-bc44-f31c21449dcc" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5f3d9d70-01"

4.5 blkid 常见用途

  • 查看文件系统类型,例如 ext4xfs
  • 获取 UUID,便于写入 /etc/fstab
  • 排查磁盘挂载失败、设备识别异常等问题

5、常用巡检思路

如果只是做一次简单的硬件巡检,通常可以按下面的顺序:

5.1 看 CPU

lscpu

关注:架构、核心数、线程数、虚拟化信息。

5.2 看内存

free -h

关注总量、可用内存、Swap 是否被使用。

5.3 看磁盘

lsblk
blkid

关注:磁盘和分区结构、挂载点、文件系统类型。

6、小结

  • lscpu 适合快速查看 CPU 总体情况
  • /proc/cpuinfo 更详细,适合深入分析 CPU 参数
  • free -h 是查看内存使用最常用的命令
  • /proc/meminfo 提供更细的内存统计信息
  • lsblk 适合看块设备和挂载关系
  • blkid 适合看 UUID 和文件系统类型

这几个命令已经能覆盖 Linux 中大部分基础硬件巡检场景。