来源:一起登山 | 发布日期:2026-04-29
磁盘排查工具实战指南
从 iostat 到 smartctl,覆盖磁盘性能监控、设备识别与健康检查三大场景。本文以实战输出为线索,详解每列含义和阈值判断。
iostat:磁盘 IO 性能核心工具
iostat -x -t 1 每隔 1 秒取样,重点关注以下指标:
关键列含义与阈值
| 指标 | 含义 | 阈值判断 |
|---|---|---|
| %util | 磁盘繁忙占比 | <70 正常 / 70~90 压力大 / >90 IO 瓶颈 |
| await | IO 请求平均等待耗时 (ms) | <10ms 优秀 / 10~20ms 轻微压力 / >20ms 业务会卡 |
| w/s, r/s | 每秒写/读次数 | 对比设备 IOPS 上限判断 |
| wkB/s, rkB/s | 读写吞吐量 | 对比设备带宽上限 |
| avgqu-sz | 平均队列长度 | 0~5 无排队 / 5~20 轻微积压 / >20 严重阻塞 / >50 磁盘夯死 |
输出示例解析
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.53 0.03 11.03 3.73 340.21 62.15 0.01 1.09 2.20 1.09 0.05 0.06
sdb 0.00 1.80 0.07 28.37 3.02 392.19 27.80 0.01 0.20 1.32 0.20 0.02 0.07
sdc 0.00 0.01 0.00 1.17 0.00 291.93 499.50 0.01 11.07 0.53 11.07 0.29 0.03
- sda/sdb:%util=0.06~0.07,await=0.20~1.09ms → 极低负载,正常
- sdc:%util=0.03(低),但 await=11.07ms(写),w_await=11.07ms → 写响应稍长,可能为机械盘或共享存储
- svctm:平均服务时间,SSD 通常 <1ms,HDD 通常 2-10ms
iowait 解读
iostat -x -t 1 输出顶部有 CPU 信息中的 %iowait 列:
%iowait = 0→ CPU 没有在等 IO,磁盘正常%iowait > 10→ 磁盘可能成为瓶颈,CPU 大量时间在等 IO 完成- 注意:高 iowait ≠ 磁盘坏了,也可能是大量小文件写入导致
lsscsi:SCSI 设备列表
lsscsi
# [0:0:0:0] disk VMware Virtual disk 2.0 /dev/sda
# [0:0:1:0] disk VMware Virtual disk 2.0 /dev/sdb
列出所有 SCSI/虚拟化磁盘设备,包括硬盘、U 盘、光驱、RAID 卡、SAN 存储。快速查看服务器挂载了多少块盘、它们的类型和驱动。
lsblk:块设备拓扑
lsblk
# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
# sda 8:0 0 100G 0 disk
# ├─sda1 8:1 0 1G 0 part /boot
# └─sda2 8:2 0 99G 0 part
# └─centos-root 253:0 0 50G 0 lvm /
# sdb 8:16 0 500G 0 disk
# └─sdb1 8:17 0 500G 0 part /data
树形结构清晰展示:物理盘 → 分区 → LVM 逻辑卷 → 挂载点的完整链路。
smartctl:磁盘健康诊断
smartctl -a /dev/sda 检查硬盘 S.M.A.R.T. 健康状态。
关键检查项
# 整体健康状态
smartctl -H /dev/sda
# SMART overall-health self-assessment test result: PASSED
# 完整属性
smartctl -a /dev/sda
核心属性解读
| ID | 属性名 | 含义 | 正常值 |
|---|---|---|---|
| 1 | Raw_Read_Error_Rate | 底层读取错误率 | RAW=0 正常 |
| 5 | Reallocated_Sector_Ct | 重映射扇区计数 | RAW=0 正常;>0 表有坏道 |
| 9 | Power_On_Hours | 通电小时数 | 记录使用时长 |
| 12 | Power_Cycle_Count | 启停次数 | 服务器通常很低 |
| 176 | Erase_Fail_Count_Chip | 芯片擦除失败次数 | RAW=0 正常 |
| 177 | Wear_Leveling_Count | 磨损均衡计数 | VALUE 接近 100 寿命充足 |
| 178 | Used_Rsvd_Blk_Cnt_Chip | 已用备用块 | 数值越大越接近寿命终点 |
| 187 | Reported_Uncorrect | 不可纠正错误 | RAW=0 正常 |
| 194 | Temperature_Celsius | 硬盘温度 | RAW=30~45°C 正常;>60°C 过热 |
| 199 | UDMA_CRC_Error_Count | 链路 CRC 校验错误 | RAW=0 正常;>0 表线缆/背板问题 |
| 241 | Total_LBAs_Written | 总写入量 | 评估 SSD 寿命消耗 |
| 242 | Total_LBAs_Read | 总读取量 | 评估负载 |
实战解读示例
Device Model: HFS480G32FEH-7410A → SSD 480GB
Rotation Rate: Solid State Device
SMART overall-health: PASSED
Power_On_Hours: 42816 → ~4.89 年连续运行
Reallocated_Sector_Ct: 0 → 无坏道
Wear_Leveling_Count: 99/100 → 寿命仅消耗 1%
Temperature_Celsius: 30°C → 散热优秀
UDMA_CRC_Error_Count: 0 → 链路正常
Total_LBAs_Written: 42898 → 写入量极低,养老盘
zgrep:压缩日志搜索
zgrep -ai '2026-04-23 15:00' omaplugin* | wc -l
zgrep= 不解压直接搜索 .gz 压缩文件-a:把二进制/压缩文件当文本处理-i:忽略大小写
替代方案:zcat file.gz | grep pattern,但 zgrep 更简洁。
关联页面
| 页面 | 关联点 |
|---|---|
| linux-disk-io-tuning | 磁盘 IO 性能调优(调度器/内核参数/fio 基准测试) |
| linux-disk-space-troubleshooting | 磁盘空间排查 |
| linux-hardware-info-and-ops-guide | 硬件信息查询命令速查 |
| linux-essential-commands-reference | Linux 常用命令 |
| server-performance-four-dimensions | 四维性能排查(含磁盘 IO) |