返回首页

磁盘排查工具实战指南 — iostat/smartctl/lsscsi 详解

📅 创建于 2026-05-29 🔄 更新于 2026-05-29 📝 565 字

来源:一起登山 | 发布日期: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-referenceLinux 常用命令
server-performance-four-dimensions四维性能排查(含磁盘 IO)