Skip to content
Back to skills

Windows Performance Monitoring

ASecurity

Use when monitoring perf counters and system metrics.

  • 2 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 10, 2026
ai-agentsgoshelldockerperformance

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill windows-performance-monitoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Windows Performance Monitoring?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Windows Performance Monitoring
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-windows-performance-monitoring/badge)](https://www.skillsdirectory.com/skills/loopyluci-windows-performance-monitoring)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: windows-performance-monitoring
description: "Use when monitoring perf counters and system metrics."
category: software-development
tags: [windows, performance, monitoring, counters, perfmon]
---
# Windows Performance Monitoring

Monitoring system performance via PowerShell and PerfMon.

## CPU

```powershell
# Current CPU usage
Get-Counter "\Processor(_Total)\% Processor Time"

# Per-core CPU
Get-Counter "\Processor(*)\% Processor Time"

# CPU over time (5 samples, 2s间隔)
Get-Counter "\Processor(_Total)\% Processor Time" -SampleInterval 2 -MaxSamples 5

# Top CPU processes
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, WorkingSet
```

## Memory

```powershell
# Available memory
Get-Counter "\Memory\Available MBytes"

# Memory breakdown
Get-Counter "\Memory\*"

# Process memory usage
Get-Process | Sort-Object WorkingSet -Descending | Select -First 10 Name, WorkingSet

# Page file usage
Get-Counter "\Paging File(_Total)\% Usage"
```

## Disk

```powershell
# Disk activity
Get-Counter "\PhysicalDisk(_Total)\% Disk Time"
Get-Counter "\PhysicalDisk(_Total)\Avg. Disk Queue Length"

# Disk read/write speed
Get-Counter "\PhysicalDisk(*)\Disk Reads/sec"
Get-Counter "\PhysicalDisk(*)\Disk Writes/sec"

# Free space
Get-PSDrive -PSProvider FileSystem | Select-Object Name, Used, Free
```

## Network

```powershell
# Network throughput
Get-Counter "\Network Interface(*)\Bytes Total/sec"

# Per-adapter stats
Get-Counter "\Network Interface(*)\Packets Sent/sec"
Get-Counter "\Network Interface(*)\Packets Received/sec"
```

## Docker-Specific Monitoring

```powershell
# Docker container CPU
Get-Counter "\Docker Container(*)\CPU %"

# Docker container memory
Get-Counter "\Docker Container(*)\Memory Usage"

# Docker container network
Get-Counter "\Docker Container(*)\Network Bytes Received/sec"
```

## Log Performance Data

```powershell
# Log to CSV for analysis
$samples = Get-Counter "\Processor(_Total)\% Processor Time" `
    "\Memory\Available MBytes" `
    "\PhysicalDisk(_Total)\% Disk Time" `
    -SampleInterval 5 -MaxSamples 60

$samples | ForEach-Object {
    [PSCustomObject]@{
        Timestamp = $_.TimeStamp
        CPU = $_.CounterSamples[0].CookedValue
        MemoryMB = $_.CounterSamples[1].CookedValue
        Disk = $_.CounterSamples[2].CookedValue
    }
} | Export-Csv "perf-log.csv" -NoTypeInformation
```

## Real-Time Dashboard

```powershell
while ($true) {
    Clear-Host
    Get-Counter "\Processor(_Total)\% Processor Time" |
        ForEach-Object { "CPU: $($_.CounterSamples[0].CookedValue)%" }
    Get-Counter "\Memory\Available MBytes" |
        ForEach-Object { "RAM Free: $($_.CounterSamples[0].CookedValue) MB" }
    Start-Sleep -Seconds 2
}
```

## Pitfalls

- Some counters need admin (disk, network)
- First counter sample is often invalid -- discard it
- High-frequency polling impacts performance
- Docker counters only available when Docker Desktop is running
- Counter paths are locale-dependent on non-English Windows

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.