WMIPrvSE.exe 고CPU 사용 원인 추적 가이드
WMIPrvSE.exe란?
WMI Provider Host (WMIPrvSE.exe)는 Windows Management Instrumentation의 핵심 프로세스로, 시스템 관리 정보를 제공하는 WMI 프로바이더를 호스팅합니다.
이 프로세스가 높은 CPU를 사용하는 경우, 특정 WMI 쿼리가 과도하게 실행되고 있음을 의미합니다.
원인 분석 절차
Step 1: WMI 활동 확인
# 현재 WMI 프로세스 확인
Get-Process WmiPrvSE | Select-Object Id, CPU, WorkingSet64, StartTime
Step 2: WMI 쿼리 추적
# WMI 트레이싱 활성화
wevtutil sl Microsoft-Windows-WMI-Activity/Trace /e:true
# 최근 WMI 작업 로그 확인
Get-WinEvent -LogName "Microsoft-Windows-WMI-Activity/Operational" -MaxEvents 50 |
Select-Object TimeCreated, Message |
Format-List
Step 3: 어떤 프로세스가 WMI를 호출하는지 확인
# WMI 쿼리를 실행하는 클라이언트 프로세스 추적
Get-WmiObject -Query "SELECT * FROM __InstanceOperationEvent WITHIN 5" |
ForEach-Object { $_.TargetInstance }
Step 4: 특정 WMI 프로바이더 식별
# 로드된 WMI 프로바이더 목록
Get-WmiObject -Class __Win32Provider |
Select-Object Name, CLSID, HostingModel |
Format-Table -AutoSize
일반적인 원인과 해결방법
1. 모니터링 소프트웨어의 과도한 폴링
- 증상: 주기적으로 CPU 스파이크 발생
- 해결: 폴링 간격 조정 (5초 → 30초 이상)
2. 손상된 WMI 리포지토리
- 증상: 지속적인 높은 CPU 사용
- 해결:
# WMI 리포지토리 무결성 검사
winmgmt /verifyrepository
# 필요시 리포지토리 재구축
winmgmt /salvagerepository
3. 잘못된 WMI 이벤트 구독
- 증상: 특정 이벤트 발생 시 CPU 급증
- 해결:
# 영구 WMI 이벤트 구독 확인
Get-WmiObject -Namespace root\subscription -Class __EventFilter
Get-WmiObject -Namespace root\subscription -Class __EventConsumer
Orange Platform에서의 모니터링
Orange Platform은 WMIPrvSE.exe의 CPU 사용률을 실시간으로 추적하며, 임계치 초과 시 자동으로 알림을 발생시킵니다. 또한 어떤 WMI 쿼리가 성능에 영향을 주는지 상세 분석 데이터를 제공합니다.