-3

긴 프로세스 (6-8 시간)의 성능을 분석하고 싶습니다. 작성된/완료된 프로세스 (명령 행 포함) 및 CPU 사용에 대한 정보가 필요합니다.xperf (Windows Perfromance Toolkit)로 CPU 사용률 샘플링을 수집하는 방법

Windows Perfromance Anayzer (wpa.exe/xperfview.exe)가 분석을위한 훌륭한 도구라는 것을 발견했습니다. 성능 데이터 수집기를 만들고 공급자 'Windows 커널 추적', 키워드 '프로세스'를 선택하고 프로세스에 대한 정보를 얻습니다.

그러나 샘플링을 통해 CPU 사용률에 대한 정보를 수집하는 방법을 찾을 수 없습니다. 내가 perfromance 카운터 등 * 나타내는 .blg 파일을 사용하여 CPU 사용률을 수집 할 수 있습니다

또한

xperf.exe 자료 -on

은 CPU 정보를 수집하지만, 너무 많은 정보를 생성하는 것을 내가 알고 , ... ,하지만이 파일을 wpa로로드 할 수 없습니다. ? :(

어떤 아이디어

답변

2

당신은 명령 프롬프트 (cmd.exe를)에서이 명령을 running as admin을 스택과 CPU 샘플링을 얻을 수 있습니다 : 이것은 최대 크기의 파일을 생성

xperf -on PROC_THREAD+LOADER+PROFILE -stackwalk profile -buffersize 1024 -MaxFile 1024 -FileMode Circular && timeout -1 && xperf -d C:\HighCPUUsage.etl 

파일이 너무 커지기 때문에 Xperf/ETW는 장기 분석에 적합하지 않습니다. 따라서 명령을 실행하고 Taskmgr에서 높은 CPU 사용량이 표시되면 키를 눌러 기록을 중지하십시오. WPA.exe 이제 마지막 분을 볼 수 있습니다.

+0

이 명령은 초당 ~ 2MB를 생성합니다 . ~ 6 시간 동안 정보 수집이 필요합니다. 결국 ~ 40GB .etl 파일 (MaxFile을 늘려야 함)을 wpa.exe에로드 할 수 없게됩니다 .... –

+1

작은 부분으로 문제를 나눕니다. 내가 말한 것을 수행하고 더 짧은 추적을 실행하여 CPU 사용을 유발하는 원인을 찾아냅니다. 이제 이것을 코드에서 수정하고 CPU 사용량을 다시 살펴보십시오. 문제가 계속되면 모든 문제를 해결할 때까지이 작업을 반복하십시오. – magicandre1981

+0

제가 말씀 드릴 수 있듯이 너무 많은 정보를 생성합니다. 이것은 코드 문제가 아닙니다. 야간 빌드 절차 퍼포먼스에 대한 간략한 개요를보고 싶습니다. 신속한 조사를 위해 40 일을 소비 할 수 없습니다 (절차 40 회 측정). –