How do I inspect CPU and memory usage on a Windows server?
Use a combination of system memory information and process measurements rather than treating one number as proof of overload. On a VPS, these measurements describe the resources visible to Windows, not the host hypervisor’s full capacity.
Instructions
1. Read system memory counters
The selected operating-system fields are reported in kilobytes.
Get-CimInstance Win32_OperatingSystem | Select-Object TotalVisibleMemorySize, FreePhysicalMemoryCompare available memory with workload behaviour and paging, rather than assuming all used memory is a fault.
2. Inspect processor and process snapshots
Use these as short diagnostic observations, not a long-term capacity report.
Get-CimInstance Win32_Processor | Select-Object DeviceID, NumberOfLogicalProcessors, LoadPercentage
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 Id, ProcessName, WorkingSet64, CPUWorkingSet64 is resident memory in bytes. The Get-Process CPU field is accumulated processor time, not instantaneous CPU percentage.
3. Correlate sustained symptoms
Compare several measurements during the actual slowdown with application logs and service response times. Do not stop the largest process just because it appears first; it may be the primary production workload.
Check the result
- The observed process IDs map to known applications.
- The diagnosis considers sustained resource pressure and application behaviour, not just one snapshot.
Troubleshooting
- CPU values seem larger than 100
- Get-Process CPU is elapsed processor time rather than a percentage.
- Allocated VPS resources look different from physical hardware
- The guest reports virtual resources. Check the service allocation separately from hypervisor measurements.
Official references
Use the documentation for your installed version when a flag, service name or platform feature differs.
