Find us on social media
Monitor server resources
Monitor CPU, RAM, disk, and network on Windows Server with Performance Monitor and PowerShell.
Monitoring CPU, RAM, disk and network usage helps you identify performance issues and plan capacity for your Windows Server VPS.
Task Manager
Quick overview of resource usage:
# Open Task Manager
taskmgrOr press Ctrl+Shift+Esc in your RDP session. The Performance tab shows real-time CPU, memory, disk and network graphs.
PowerShell resource commands
# CPU usage
Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 2 -MaxSamples 5
# Memory usage
Get-Counter '\Memory\Available MBytes'
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 Name, @{N='RAM(MB)';E={[math]::Round($_.WorkingSet64/1MB,2)}}
# Disk usage
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{N='Used(GB)';E={[math]::Round($_.Used/1GB,2)}}, @{N='Free(GB)';E={[math]::Round($_.Free/1GB,2)}}
# Disk I/O
Get-Counter '\PhysicalDisk(_Total)\Disk Reads/sec', '\PhysicalDisk(_Total)\Disk Writes/sec'Performance Monitor (perfmon)
For detailed monitoring with graphs:
perfmonAdd counters for:
- Processor → % Processor Time
- Memory → Available MBytes
- PhysicalDisk → % Disk Time
- Network Interface → Bytes Total/sec
Event Viewer
Check system events and errors:
eventvwr.mscOr via PowerShell:
# Recent errors
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object {$_.LevelDisplayName -eq 'Error'}
# Recent warnings
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object {$_.LevelDisplayName -eq 'Warning'}Resource Monitor
Detailed per-process resource usage:
resmonCreate a monitoring script
# Save as C:\scripts\monitor.ps1
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue
$mem = (Get-Counter '\Memory\Available MBytes').CounterSamples.CookedValue
$disk = (Get-PSDrive C).Free / 1GB
$report = "CPU: {0:N1}% | RAM Available: {1:N0} MB | Disk Free: {2:N1} GB" -f $cpu, $mem, $disk
Write-Host $report
# Log to file
Add-Content -Path "C:\logs\monitor.log" -Value "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') | $report"Schedule it with Task Scheduler to run every 5 minutes.
Tip
For continuous monitoring with alerts, consider installing Prometheus with windows_exporter or Datadog agent on your Baires Host VPS. These provide dashboards, historical data and alerting capabilities.