How to convert a tasklist's CPU time to CPU % usage?

前提是你 提交于 2020-03-09 09:10:14

问题


I'm trying to use tasklist to find out which process is consuming more than X percent of my CPU (to later kill it with taskkill.)

How do I know what percent a time format represents?

The documentations says:

TASKLIST options

/FI   filter               

And one filter may be:

CPUTIME         eq, ne, gt, lt, ge, le        CPU time in the format: hh:mm:ss.
                                              hh - number of hours,
                                              mm - minutes, ss - seconds

If I try

tasklist /FI "CPUTIME gt 00:00:10" 

it works.

But if I

tasklist /FI "CPUTIME gt 90"

it doesn't.

How can I know that time format represent 90%? Or 80%? What's the relationship between CPU usage time and the CPU usage percent?


回答1:


Tasklist's CPUTime is a measure of how much CPU time (cycles) have been used since the start of the process, so to convert that to a percent, it would be

 (TotalProcessRuntime / CpuTime) / 100

At least, thats what I gather :)




回答2:


It doesn't look like there's an easy way to do this with tasklist, so I would suggest either doing this in VBscript or another scripting language, or using a different approach. If you're constrained to batch files then you could use the WMIC command to get the list of running processes with their respective CPUTime:

C:\> wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime

Name                 PercentProcessorTime
Idle                 0
System               0
Smss                 0
csrss                0
winlogon             0
services             0
lsass                0

[...]

wmiprvse             100
wmic                 0
_Total               100

Note that this in my testing showed wmipsrv.exe as having 100% CPU, because it spiked while executing the WMI query. You should account for that in your script or you'll end up trying to kill the WMI service constantly ;)

Reference:
http://waynes-world-it.blogspot.com/2008/09/useful-general-command-line-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx



来源:https://stackoverflow.com/questions/206805/how-to-convert-a-tasklists-cpu-time-to-cpu-usage

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