Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
485 views
in Technique[技术] by (71.8m points)

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

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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...