215 lines
5.9 KiB
Markdown
215 lines
5.9 KiB
Markdown
## 1、硬件管理概览
|
||
|
||
在 Linux 中查看硬件信息,常见关注点主要有三类:
|
||
|
||
- CPU:核心数、线程数、架构、缓存、是否虚拟化
|
||
- 内存:总量、可用量、缓存、Swap 使用情况
|
||
- 磁盘:设备、分区、文件系统类型、挂载点
|
||
|
||
做系统巡检或排障时,通常也是按这个顺序查看。
|
||
|
||
## 2、查看 CPU 信息
|
||
|
||
### 2.1 使用 `lscpu`
|
||
|
||
`lscpu` 是查看 CPU 信息最直观的命令,适合快速了解当前机器的处理器概况。
|
||
|
||
```shell
|
||
[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 重点字段说明
|
||
|
||
- `Architecture`:CPU 架构,例如 `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 name`:CPU 型号
|
||
- `Hypervisor vendor`:当前是否运行在虚拟化环境中,例如 KVM
|
||
- `L1/L2/L3 cache`:不同层级的 CPU 缓存大小
|
||
|
||
### 2.3 使用 `/proc/cpuinfo`
|
||
|
||
如果你想看更底层、更详细的信息,可以直接查看:
|
||
|
||
```shell
|
||
[root@tencentos ~]# cat /proc/cpuinfo
|
||
```
|
||
|
||
这个文件会按每个逻辑 CPU 分别列出详细参数,例如:
|
||
|
||
- `processor`:逻辑 CPU 编号
|
||
- `vendor_id`:CPU 厂商
|
||
- `model name`:CPU 型号名称
|
||
- `cpu MHz`:当前频率
|
||
- `cache size`:缓存大小
|
||
- `flags`:CPU 支持的指令集特性
|
||
- `bugs`:已知 CPU 漏洞或风险标记
|
||
- `address sizes`:物理地址和虚拟地址位数
|
||
|
||
### 2.4 使用场景建议
|
||
|
||
- **快速巡检**:优先用 `lscpu`
|
||
- **查看更细节的 CPU 参数**:使用 `/proc/cpuinfo`
|
||
- **判断是否是虚拟机**:关注 `Hypervisor vendor`
|
||
- **判断核心、线程、物理 CPU 数**:结合 `CPU(s)`、`Thread(s) per core`、`Core(s) per socket`、`Socket(s)` 一起看
|
||
|
||
## 3、查看内存信息
|
||
|
||
### 3.1 使用 `free -h`
|
||
|
||
`free` 是查看内存最常用的命令,`-h` 可以用更适合阅读的单位显示。
|
||
|
||
```shell
|
||
[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`
|
||
|
||
如果需要更完整的内存明细,可以查看:
|
||
|
||
```shell
|
||
[root@tencentos ~]# cat /proc/meminfo
|
||
```
|
||
|
||
其中比较常见的字段有:
|
||
|
||
- `MemTotal`:物理内存总量
|
||
- `MemFree`:当前空闲内存
|
||
- `MemAvailable`:当前可用内存
|
||
- `Buffers`:块设备缓冲区使用量
|
||
- `Cached`:页缓存使用量
|
||
- `SwapTotal`:Swap 总量
|
||
- `SwapFree`:Swap 剩余量
|
||
- `Slab`:内核 slab 缓存占用
|
||
- `Dirty`:等待写回磁盘的数据量
|
||
|
||
### 3.4 排障时怎么看内存
|
||
|
||
- 日常巡检时优先看 `free -h`
|
||
- 不要只盯着 `free`,应重点关注 `available`
|
||
- 如果 `Swap` 持续上升,通常需要关注内存压力
|
||
- 如果想进一步排查缓存、页表、HugePages 等问题,再看 `/proc/meminfo`
|
||
|
||
## 4、查看磁盘与分区信息
|
||
|
||
### 4.1 使用 `lsblk`
|
||
|
||
`lsblk` 用于查看块设备、分区和挂载关系,是查看磁盘结构时最常用的命令之一。
|
||
|
||
```shell
|
||
[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`:设备类型,例如 `disk`、`part`
|
||
- `MOUNTPOINT`:挂载点
|
||
|
||
### 4.3 使用 `/proc/partitions`
|
||
|
||
```shell
|
||
[root@tencentos ~]# cat /proc/partitions
|
||
major minor #blocks name
|
||
253 0 52428800 vda
|
||
253 1 52427759 vda1
|
||
```
|
||
|
||
这个文件更偏底层,适合查看系统识别到的块设备和分区情况。
|
||
|
||
### 4.4 使用 `blkid`
|
||
|
||
`blkid` 可以查看设备的文件系统类型、UUID、分区 UUID 等信息。
|
||
|
||
```shell
|
||
[root@tencentos ~]# blkid
|
||
/dev/vda1: UUID="ded6c45d-0699-43e5-bc44-f31c21449dcc" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5f3d9d70-01"
|
||
```
|
||
|
||
### 4.5 `blkid` 常见用途
|
||
|
||
- 查看文件系统类型,例如 `ext4`、`xfs`
|
||
- 获取 `UUID`,便于写入 `/etc/fstab`
|
||
- 排查磁盘挂载失败、设备识别异常等问题
|
||
|
||
## 5、常用巡检思路
|
||
|
||
如果只是做一次简单的硬件巡检,通常可以按下面的顺序:
|
||
|
||
### 5.1 看 CPU
|
||
|
||
```shell
|
||
lscpu
|
||
```
|
||
|
||
关注:架构、核心数、线程数、虚拟化信息。
|
||
|
||
### 5.2 看内存
|
||
|
||
```shell
|
||
free -h
|
||
```
|
||
|
||
关注:总量、可用内存、Swap 是否被使用。
|
||
|
||
### 5.3 看磁盘
|
||
|
||
```shell
|
||
lsblk
|
||
blkid
|
||
```
|
||
|
||
关注:磁盘和分区结构、挂载点、文件系统类型。
|
||
|
||
## 6、小结
|
||
|
||
- `lscpu` 适合快速查看 CPU 总体情况
|
||
- `/proc/cpuinfo` 更详细,适合深入分析 CPU 参数
|
||
- `free -h` 是查看内存使用最常用的命令
|
||
- `/proc/meminfo` 提供更细的内存统计信息
|
||
- `lsblk` 适合看块设备和挂载关系
|
||
- `blkid` 适合看 UUID 和文件系统类型
|
||
|
||
这几个命令已经能覆盖 Linux 中大部分基础硬件巡检场景。
|