Как преобразовать время процессора в списке задач в% загрузки процессора? - PullRequest
10 голосов
/ 16 октября 2008

Я пытаюсь использовать tasklist, чтобы выяснить, какой процесс потребляет более X процентов моего ЦП (чтобы потом убить его с помощью taskkill.)

Как узнать, какой процент представляет формат времени?

Документация гласит:

TASKLIST options

/FI   filter               

И один фильтр может быть:

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

Если я попытаюсь

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

это работает.

Но если я

tasklist /FI "CPUTIME gt 90"

это не так.

Как я могу узнать, что формат времени составляет 90%? Или 80%? Какова взаимосвязь между временем использования процессора и процентом использования процессора?

Ответы [ 2 ]

17 голосов
/ 16 октября 2008

Не похоже, что есть простой способ сделать это с помощью списка задач, поэтому я бы предложил сделать это на VBscript или другом языке сценариев, или использовать другой подход. Если вы ограничены пакетными файлами, вы можете использовать команду WMIC , чтобы получить список запущенных процессов с соответствующим 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

Обратите внимание, что это в моем тестировании показало, что wmipsrv.exe имеет 100% ЦП, потому что он работал с шипами при выполнении запроса WMI. Вы должны учесть это в своем скрипте, иначе вы будете пытаться постоянно убивать службу WMI;)

Ссылка:
http://waynes -world-it.blogspot.com / 2008/09 / полезно-общее-командная строка-операции.html
http://technet.microsoft.com/en-us/library/bb742610.aspx

0 голосов
/ 16 октября 2008

Список задач CPUTime - это показатель того, сколько процессорного времени (циклов) было использовано с начала процесса, поэтому, чтобы преобразовать его в процент, это будет

 (TotalProcessRuntime / CpuTime) / 100

По крайней мере, это то, что я собираю :) 1004 *

...