T The Triage ManualTechnical Guides for IT Emergencies
P2 · Windows Server

Windows Server High CPU / Memory / Disk — Performance Degradation Diagnosis

A Windows Server becomes sluggish, applications time out, or users report slowness. Systematic diagnosis using Resource Monitor, PerfMon counters, and process-level tools identifies whether the bottleneck is CPU saturation, memory pressure, kernel pool exhaustion, or I/O queue depth.

Indicators

Likely causes

Diagnostic steps

  1. Open Resource Monitor (resmon.exe) — review CPU, Memory, Disk and Network tabs to identify the top consuming process and resource
  2. Open PerfMon and add counters: \Processor(_Total)\% Processor Time, \Memory\Available MBytes, \PhysicalDisk(_Total)\Avg. Disk sec/Transfer, \PhysicalDisk(_Total)\Avg. Disk Queue Length
  3. Identify top memory consumers: Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object Name, Id, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB,1)}} | Select-Object -First 15
  4. Check kernel pool leaks (Event ID 2019/2020): run poolmon.exe (from Windows SDK) — sort by NonP column; identify the tag consuming most non-paged pool and cross-reference against driver list
  5. Check disk health: Get-PhysicalDisk | Select FriendlyName, HealthStatus, OperationalStatus; run CrystalDiskInfo for S.M.A.R.T data on physical hardware
  6. Capture a 30-minute PerfMon data collector set baseline and export to BLG file for trend analysis; use Windows Admin Center Performance History if available

Resolution path

Prevention

Tools

windows-serverperformancecpumemorydisk-ioperfmonpool-leakresmonbottleneck