How to gather CPU utilization sampling with xperf (Windows Performance Toolkit)

陌路散爱 提交于 2019-12-13 09:46:35

问题


I want to analyze performance of long process (6-8 hours). I need information about created/finished processes (with command lines) and CPU utilization.

I found, that Windows Performance Analyzer (wpa.exe/xperfview.exe) is great tool for analyzing. I create performance data collector, select provider 'Windows Kernel Trace', keyword 'process' and got information about processes.

But I can't find how to collect information about CPU utilization with sampling. I know, that

xperf.exe -on Base

collect CPU information, but it generate too much information...

Also I can collect CPU utilization with performance counters as *.blg file, but I can't load this file into Windows Performance Analyzer. :(

Any ideas?


回答1:


You can get the CPU sampling with Stacks with this command from a command prompt (cmd.exe), running as admin:

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

This creates a file with max size of 1GB. Xperf/ETW is not working well for long term analysis, because the files are getting too large. So, run the command, and if you see a high CPU usage in Taskmgr, press key to stop logging. Open the ETL in WPA.exe and now you see the last minutes.



来源:https://stackoverflow.com/questions/28315312/how-to-gather-cpu-utilization-sampling-with-xperf-windows-performance-toolkit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!