Four Task Manager numbers people misread
Commit size versus memory, GPU engines, the meaning of 100% disk, and why the totals never add up.
- Build
- 26300.9457 / 26100.33650
- Edition
- Pro (26H2) / Server
- Architecture
- x64
- Support
- Documentation (E1)
- Evidence
- E1Official documentation
- Verified
- 2026-10-29
- Page type
- Concept
The short answer
Section titled “The short answer”Task Manager is a summary tool, not a measurement tool. Four numbers cause most confusion:
- Memory vs commit size — different questions, different answers.
- GPU % — an average across engines that are not comparable.
- Disk 100% — active time, not throughput; a slow queue looks “full”.
- CPU % — utilisation, not speed; 30% on a throttled CPU is still slow.
Memory is not one number
Section titled “Memory is not one number”| Column | Means |
|---|---|
| In use (compressed) | physical RAM holding working sets, plus compression store |
| Available | standby + free — memory the system can hand out |
| Committed | total backed by RAM or page file |
| Cached | standby list, reusable |
A machine with 16GB and “90% memory used” may be perfectly healthy: Windows fills RAM with cache and reclaims it on demand. A machine with “50% used” but heavy paging is not healthy.
Get-Counter '\Memory\Available MBytes','\Memory\Committed Bytes','\Memory\Pages/sec' -MaxSamples 5Get-CimInstance Win32_OperatingSystem | Select-Object @{n='TotalGB';e={[math]::Round($_.TotalVisibleMemorySize/1MB,1)}}, @{n='FreeGB';e={[math]::Round($_.FreePhysicalMemory/1MB,1)}}Watch Pages/sec and the hard fault rate, not the percentage.
GPU % is an average of incompatible engines
Section titled “GPU % is an average of incompatible engines”Windows exposes per-engine utilisation: 3D, Copy, Video Decode, Video Encode, Compute. Task Manager shows a number that can be an average or the busiest engine depending on the view.
- 100% “Video Decode” during playback is normal and cheap.
- 30% “3D” with stutter means the bottleneck is elsewhere.
- “Copy” engine saturation is the fingerprint of the composition path — see WDDM, HAGS and MPO.
Get-Counter '\GPU Engine(*)\Utilization Percentage' -MaxSamples 2“Disk 100%” does not mean full throughput
Section titled ““Disk 100%” does not mean full throughput”The Disk column is active time: the percentage of the sample window during which the disk had at least one outstanding request. A 5400rpm drive with a queue of small random reads sits at 100% while moving 2MB/s.
What to look at instead:
- Response time (
Avg. Disk sec/Transfer) — above ~25ms on an SSD is a problem; - Queue length;
- which process is doing it.
Get-Counter '\PhysicalDisk(*)\Avg. Disk sec/Transfer','\PhysicalDisk(*)\Current Disk Queue Length' -MaxSamples 5Also: Windows Update, Defender scans and indexing all legitimately saturate a disk for minutes. That is not a fault.
CPU % hides frequency
Section titled “CPU % hides frequency”A CPU at 25% utilisation while thermally throttled to 800MHz is slower than the same CPU at 100% at full clock.
Get-Counter '\Processor Information(_Total)\% Processor Performance','\Processor Information(_Total)\% of Maximum Frequency'% Processor Performance above 100% means boosting; below 100% under load means throttling.
Related
Section titled “Related”Lab boundary
Section titled “Lab boundary”E1. Counter semantics are Microsoft-documented. No counter capture was taken on the lab VMs for this page.