Disk saturation is a common cause of sudden slowness on Windows, especially during large file copies, antivirus scans, updates, and database or VM workloads. Watching disk I/O highlights when storage throughput or latency becomes the limiting factor instead of CPU or memory.
Built-in tools expose disk activity by reading counters from the storage stack and attributing work back to processes. Task Manager provides a fast per-disk snapshot (active time, read/write rate, and response time), Resource Monitor breaks I/O down by process and file, and Performance Monitor (perfmon) graphs disk counters over time to reveal sustained latency, queueing, and throughput limits.
Disk metrics are influenced by controller and filesystem caching, encryption, and virtualization layers, so a “busy” graph can reflect a virtual disk or storage pool rather than a single physical device. Sampling too aggressively or adding many counters can add overhead on already stressed systems, so keeping the counter set small during incident response improves signal quality. Administrative privileges may be required to view full process details and file paths when attributing I/O.
The Performance view shows real-time disk activity per device.
Active time near 100% with low throughput often indicates latency or queueing rather than raw bandwidth limits.
Response Time (ms) and Disk Queue Length help confirm whether waits are caused by storage latency.
Check Read (B/sec) and Write (B/sec) to see whether the load is read-heavy or write-heavy.
Avg. Disk sec/Read and Avg. Disk sec/Write are latency values in seconds per operation, so 0.020 equals about 20 ms.
Use a specific instance (for example, a disk matching the busy drive) instead of (_Total) when isolating a single device.
PS C:\> Get-Counter -Counter "\PhysicalDisk(*)\Disk Transfers/sec" -SampleInterval 1 -MaxSamples 10
Timestamp CounterSamples
--------- --------------
12/22/2025 10:15:01 AM \\COMPUTER01\PhysicalDisk(0 C:)\Disk Transfers/sec : 18.0
\\COMPUTER01\PhysicalDisk(1 D:)\Disk Transfers/sec : 0.0
\\COMPUTER01\PhysicalDisk(_Total)\Disk Transfers/sec : 18.0
##### snipped #####
-SampleInterval 1 and -MaxSamples 10 capture about 10 seconds of per-disk activity.
Process Explorer can expose I/O totals and rates per process when built-in views are insufficient.