## 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 中大部分基础硬件巡检场景。