wiki/运维/Linux/笔记/3.硬件管理.md
2026-04-09 01:28:15 +08:00

311 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 硬件管理
> 本文档涵盖服务器硬件基础知识与 Linux 系统硬件信息查看方法。
---
## 第一部分:硬件基础知识
### 1. CPU
#### 1.1 指令集
| 类型 | 代表架构 | 特点 |
|------|---------|------|
| **CISC**(复杂指令集) | X86、AMD64 | 指令丰富但复杂,执行速度慢,编译程序复杂 |
| **RISC**(精简指令集) | ARM | 指令精简MAC 已使用Windows 生态待完善 |
#### 1.2 主频
CPU 主频是 CPU 的时钟频率,单位 Hz。主频越高CPU 运算速度越快。
---
### 2. 存储
#### 2.1 ROM只读存储器
- **作用**:存放 BIOS 信息
- **特点**:断电后数据不丢失
#### 2.2 RAM随机存取存储器
##### DRAM
- **作用**:服务器的内存条
- **带宽计算**:内存带宽 = 内存总线频率 × 数据总线位数 / 8
##### SRAM
- **作用**:作为 CPU 内的高速缓存Cache
##### DRAM vs SRAM
| 特性 | DRAM | SRAM |
|------|------|------|
| 刷新电路 | 需要 | 不需要 |
| 性能 | 较低 | 高 |
| 价格 | 便宜 | 贵 |
| 集成度 | 高 | 低 |
##### 内存分级
```
CPU 寄存器L0 → L1 Cache → L2 Cache → L3 Cache → 内存DRAM → 本地磁盘 → 远程存储NAS
```
**为什么需要分级?** CPU 处理速度远快于 IO为避免 IO 阻塞CPU 优先从高速缓存读取数据。
**缓存未命中时**CPU 从 L1 找不到数据时会去 L2 查找,找到后会复制到 L1 以便后续快速访问。
---
### 3. 硬盘
#### 3.1 接口类型
| 接口 | 全称 | 速度 |
|------|------|------|
| **SATA** | Serial ATA | : 1.5Gb/sⅡ: 3Gb/sⅢ: 6Gb/s |
| **SAS** | Serial Attached SCSI | 更高 |
| **M.2** | 固态硬盘专用接口 | 10Gb/s |
> 注意:以上为接口最大带宽上限,不代表实际速度。
#### 3.2 结构分类
| 类型 | 组成 | 特点 |
|------|------|------|
| **机械 HDD** | 盘片、磁头、马达 | 成本低,容量大,寿命长 |
| **固态 SSD** | 闪存芯片、主控 | 速度快,无噪音,抗震动 |
#### 3.3 关键参数
- 容量、转速、传输速率、缓存
#### 3.4 磁盘尺寸
| 尺寸 | 应用场景 | 特点 |
|------|---------|------|
| **3.5 寸** | 企业级 | 转速快、容量大、需要外接电源 |
| **2.5 寸** | 个人电脑/便携 | 无需外接电源,支持热插拔 |
---
### 4. 网卡
| 类型 | 说明 |
|------|------|
| 板载网卡 | 主板集成 |
| PCIE 拓展卡 | 通过 PCIE 插槽扩展 |
---
### 5. 远程管理卡BMC
- **全称**Baseboard Manager Controller
- **特点**:服务器关机状态下也能运行
- **协议**IPMI
- **功能**:远程访问、查看状态、调整 BIOS、配置 RAID、安装系统、重启机器
---
### 6. 阵列卡RAID 卡)
- **作用**实现磁盘阵列RAID释放 CPU 资源,提供缓存和阵列保护
- **功能**RAID 建立/重建、错误检测、故障磁盘自动监测
#### RAID 级别对比
| 级别 | 最少盘数 | 冗余 | 性能 | 适用场景 |
|------|---------|------|------|---------|
| **RAID 0** | 2 | 无 | 最高 | 不考虑数据安全的场景 |
| **RAID 1** | 2 | 镜像 | 读快写慢 | 系统盘、关键数据 |
| **RAID 5** | 3 | 校验 | 平衡 | 通用业务数据 |
| **RAID 6** | 4 | 双校验 | 较高 | 高可靠性场景 |
| **RAID 10** | 4 | 镜像+条带 | 高 | 数据库、高 IO 应用 |
---
### 7. 电源
| 类型 | 说明 |
|------|------|
| 服务器电源 | 通常采用双电源冗余 |
| UPS不间断电源 | 稳压,市电异常时提供备用供电 |
---
### 8. 显卡
| 类型 | 说明 |
|------|------|
| 亮机卡 | 服务器显示输出用,通常为集成显卡 |
| 专业卡 | 图形渲染用,非服务器必选 |
---
### 9. 机柜
- **计量单位**U1U ≈ 4.5cm
- **用途**:标准 19 英寸机架式服务器安装
---
## 第二部分Linux 硬件信息查看
### 2.1 查看 CPU 信息
#### 使用 `lscpu`
```bash
[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
```
#### 关键字段说明
| 字段 | 含义 |
|------|------|
| Architecture | CPU 架构,如 x86_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 | 各层级缓存大小 |
#### 使用 `/proc/cpuinfo`
```bash
[root@tencentos ~]# cat /proc/cpuinfo
```
可查看processor、vendor_id、model name、cpu MHz、cache size、flags、bugs 等详细信息。
#### 使用场景建议
- **快速巡检**`lscpu`
- **深度分析**`/proc/cpuinfo`
- **判断虚拟机**:关注 `Hypervisor vendor`
- **计算核心/线程数**:结合 CPU(s) × Thread(s) × Core(s) × Socket(s)
---
### 2.2 查看内存信息
#### 使用 `free -h`
```bash
[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
```
#### 关键字段说明
| 字段 | 含义 |
|------|------|
| total | 内存总量 |
| used | 已使用内存 |
| free | 完全空闲 |
| shared | 共享内存 |
| buff/cache | 缓冲区和页缓存 |
| available | 可用内存(推荐关注) |
| Swap | 交换分区 |
#### 使用 `/proc/meminfo`
```bash
[root@tencentos ~]# cat /proc/meminfo
```
常见字段MemTotal、MemFree、MemAvailable、Buffers、Cached、SwapTotal、SwapFree、Slab、Dirty
#### 排障建议
- 日常巡检:`free -h`
- 重点关注 `available` 而非 `free`
- Swap 持续上升需关注内存压力
---
### 2.3 查看磁盘与分区
#### 使用 `lsblk`
```bash
[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 /
```
#### 使用 `/proc/partitions`
```bash
[root@tencentos ~]# cat /proc/partitions
major minor #blocks name
253 0 52428800 vda
253 1 52427759 vda1
```
#### 使用 `blkid`
```bash
[root@tencentos ~]# blkid
/dev/vda1: UUID="ded6c45d-0699-43e5-bc44-f31c21449dcc" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5f3d9d70-01"
```
- 查看文件系统类型ext4、xfs
- 获取 UUID 用于 /etc/fstab
---
### 2.4 常用巡检命令
```bash
# 1. 看 CPU
lscpu
# 2. 看内存
free -h
# 3. 看磁盘
lsblk
blkid
```
---
## 小结
| 命令 | 用途 |
|------|------|
| `lscpu` | CPU 概况 |
| `/proc/cpuinfo` | CPU 详细信息 |
| `free -h` | 内存使用情况 |
| `/proc/meminfo` | 内存详细统计 |
| `lsblk` | 块设备与挂载 |
| `blkid` | UUID 与文件系统类型 |
掌握以上命令,可覆盖 Linux 基础硬件巡检的常见需求。