본문 바로가기
Tech/Windows

CPU 70% 이상일 때 자동으로 xperf 실행하기

by daelolo 2025. 3. 25.
반응형

PowerShell 스크립트를 이용해 CPU 사용률이 일정 기준을 넘으면 자동으로 트레이스 수집이 가능합니다.

2025.03.25 - [Tech/Windows] - Windows 성능 분석 도구 xperf 완벽 가이드 – CPU 병목 원인 찾기

 

Windows 성능 분석 도구 xperf 완벽 가이드 – CPU 병목 원인 찾기

Windows에서 CPU 사용량이 급증할 때 성능 병목 원인을 찾고 싶다면?Microsoft의 강력한 성능 분석 도구 xperf 를 이용한 실전 분석 방법을 알아보세요.🔍 xperf란 무엇인가요?xperf는 Microsoft에서 제공하

kkol.kr

 

 

1. Code 작성 start-xperfOnHighCPU.ps1 저장

 

  • CPU 사용률을 5초 간격으로 확인
  • 평균 CPU 사용률이 70% 이상이면 xperf 트레이스 시작
  • 60초간 수집 후 종료 및 .etl 저장

 

# Start-XperfOnHighCPU.ps1

$Threshold = 70
$CheckInterval = 5   # 초
$TraceDuration = 60  # 초
$EtlFile = "HighCPUTrace_$(Get-Date -Format 'yyyyMMdd_HHmmss').etl"

function Get-CPUUsage {
    $cpuLoad = Get-Counter '\Processor(_Total)\% Processor Time'
    return [int]$cpuLoad.CounterSamples[0].CookedValue
}

Write-Host "CPU 사용률 모니터링 시작 (임계값: $Threshold%)..."

while ($true) {
    $cpuUsage = Get-CPUUsage
    Write-Host "현재 CPU 사용률: $cpuUsage%"

    if ($cpuUsage -ge $Threshold) {
        Write-Host "CPU 사용률이 $Threshold% 이상입니다. xperf 수집 시작..."
        
        Start-Process xperf -ArgumentList "-on PROC_THREAD+LOADER+PROFILE -stackwalk profile -buffersize 1024 -maxfile 256 -filemode circular" -NoNewWindow
        Start-Sleep -Seconds $TraceDuration

        Write-Host "수집 종료. ETL 파일 저장 중..."
        Start-Process xperf -ArgumentList "-d $EtlFile" -Wait -NoNewWindow

        Write-Host "저장 완료: $EtlFile"
        break
    }

    Start-Sleep -Seconds $CheckInterval
}

 

2.코드 실행 및 설정 값 70% 이상 으로 파일 자동 저장

 

2-1. CPU 부하 진행

 

 

2-2 파일 생성

 

3. WPA 실행

 

4. 분석

반응형