Windows  ·  high  ·  Hardware, drivers & peripherals

Disk at 100% in Task Manager and the machine is unusable

Either something is genuinely reading and writing constantly, or the drive is failing and every operation is being retried.

What you see

Task Manager shows the disk at 100% with a low transfer rate. The machine is slow to the point of unusable, particularly after a restart.

What is actually wrong

On a healthy machine the honest causes are Windows Search indexing, an antivirus scan, an update installing in the background, or a page file on a slow drive. On an unhealthy one it is a failing drive retrying reads, which shows as 100% active time with a transfer rate near zero.

Codes and articles

100% disk usageEvent 129 storahciEvent 153Event 7MsMpEng disk

Fixes (2)

Check the drive is not failing before optimising anything
Elevated PowerShell20 minuteslow riskreversible

The rate is near zero, or the machine freezes for seconds at a time. Do this before any tuning — tuning a failing drive wastes the time you have to copy the data off.

  1. Read the drive's own reliability counters.

    PowerShell
    Get-PhysicalDisk | Format-Table FriendlyName,MediaType,HealthStatus,OperationalStatus,SizeGet-PhysicalDisk | Get-StorageReliabilityCounter | Format-List DeviceId,Wear,ReadErrorsTotal,ReadErrorsUncorrected,PowerOnHours

    ReadErrorsUncorrected above zero means the drive is losing data it cannot recover. That changes the job from performance tuning to getting the data off, immediately.

  2. Look for the storage errors that accompany a failing drive.

    PowerShell
    Get-WinEvent -LogName System -MaxEvents 400 | Where-Object { $_.Id -in 7,9,11,51,129,153 } | Format-Table TimeCreated,Id,ProviderName,Message -Wrap
  3. Event 129 from storahci means the controller reset the drive — a strong signal of a failing disk or cable. Event 153 is an I/O retry.

  4. If any of the above are present, back up now and replace the drive. Do not run chkdsk on a physically failing disk before the data is copied off.

Confirm it workedHealthStatus is Healthy and the error counters are zero.
PowerShell
Get-PhysicalDisk | Format-Table FriendlyName,HealthStatus,OperationalStatus
If you need to undo itNothing was changed.
Name the process rather than guessing at it
Elevated PowerShell25 minuteslow riskreversible

The drive is healthy and a real transfer rate is showing.

  1. Sort by actual disk bytes rather than trusting the Task Manager percentage.

    PowerShell
    Get-Process | Sort-Object -Property @{Expression={$_.ReadOperationCount + $_.WriteOperationCount}} -Descending | Select-Object -First 10 Name,Id,@{n='MB';e={[math]::Round(($_.WorkingSet64/1MB),0)}}
  2. Use Resource Monitor's Disk tab for the file-level view, which shows exactly which file is being hammered.

    Command Prompt
    resmon.exe
  3. If it is SearchIndexer, rebuild the index rather than disabling search.

    PowerShell
    Stop-Service WSearch -ForceRemove-Item "$env:ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb" -Force -ErrorAction SilentlyContinueStart-Service WSearch

    A corrupt index makes the indexer restart the same crawl forever. Deleting the database forces a clean rebuild, which is heavy for a few hours and then quiet — disabling the service instead breaks Outlook and Start menu search permanently.

  4. If it is MsMpEng, add the genuinely safe exclusions for the workload rather than turning Defender off, and check no second antivirus is installed alongside it.

  5. If the machine has a mechanical drive, moving to an SSD is the fix. On a 5400rpm laptop drive, a modern Windows install is at its limit before any application starts.

Confirm it workedDisk active time falls below 20% at idle after the indexer finishes.
PowerShell
Get-Counter '\PhysicalDisk(_Total)\% Idle Time' -SampleInterval 2 -MaxSamples 5
If you need to undo itThe search index rebuilds itself; nothing else was changed permanently.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.