问题是什么
任务管理器显示磁盘活动时间 100% 但读写速率很低,说明磁盘在“忙等”而不是在传数据。常见成因是慢速介质(机械盘、低端 eMMC)、队列积压、海量小文件随机 IO,或杀软与驱动的拦截。定位顺序是先量化队列与响应时间,再下钻到具体进程。
基本信息
| 适用平台 | Windows 10/11、Windows Server 2016 及以后 |
|---|---|
| 关键指标 | % Idle Time 接近 0 表示忙;Avg. Disk Queue Length 持续大于 2 表示排队 |
| 下钻工具 | 资源监视器 resmon、性能监视器 perfmon、Get-Counter |
| 采集口径 | 至少采样 5 次、间隔 1 秒,避免单点抖动误判 |
典型使用场景
- 服务器整体变慢但 CPU 与内存都不高,怀疑存储成为瓶颈
- 笔记本开机后长时间磁盘 100%,多为更新、索引或杀软扫描
- 文件与数据库服务器上定位是哪个进程在做大量随机小 IO
- 虚拟机磁盘 100% 时判断来自来宾侧 IO 还是宿主存储抖动
- 变更前后采集基线,对比 Idle Time 与队列长度看是否改善
常用示例
常用示例
# 采样核心计数器:空闲率与平均队列长度
Get-Counter '\PhysicalDisk(_Total)\% Idle Time','\PhysicalDisk(_Total)\Avg. Disk Queue Length' -SampleInterval 1 -MaxSamples 5
# 按 IO 量找进程(写操作次数)
Get-Process | Sort-Object WriteOperationCount -Descending | Select-Object -First 10 Name, WriteOperationCount
# 资源监视器:resmon -> 磁盘 -> 按“总计(B/秒)”排序指标判读
| 指标 | 含义 | 判读 |
|---|---|---|
| % Idle Time | 磁盘空闲百分比 | 持续低于 10% 视为几乎满载 |
| Avg. Disk Queue Length | 平均排队请求数 | 持续大于 2 通常已构成瓶颈 |
| Avg. Disk sec/Transfer | 单次传输耗时 | 机械盘超 20ms、SSD 超 10ms 偏高 |
| 磁盘活动时间 100% | 有请求在处理的采样占比 | 配合速率区分忙等与真实传输 |
| 总计(B/秒) | 进程级 IO 速率 | 定位元凶进程的关键列 |
先排除“正常的大任务”:系统更新下载、杀软全盘扫描、备份与搜索索引都会短时占满磁盘;属于计划行为就不必升级硬件。
SSD 磨损与写入放大会拉长响应时间,机械盘坏道重映射同理;若磁盘 100% 同时出现事件 7、11、153,应按硬件故障处理并先保数据。