2008-10-15 11 views
8

내가 내 CPU의 X 퍼센트보다 더 많이 소요되는 과정을 알아 tasklist를 사용하려고 해요 (나중에 taskkill으로 죽일 수 있습니다.)작업 목록의 CPU % 사용

을 내가 시간을 무엇 %를 어떻게 알 수 있습니까 형식은?

문서화는 말한다 :

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?

편집 :

추가 질문 : CPU 사용 시간과 CPU 사용량 퍼센트 사이의 관계는 무엇입니까?

답변

-3

작업 목록의 CPUTIME 그래서, 그것은 적어도

(TotalProcessRuntime/CpuTime)/100 

일 것 %로 그 변환, 프로세스의 시작부터 사용되어왔다 얼마나 많은 CPU 시간 (주기)의 측정, 무엇을 먹으 렴 내가 수집 :

+3

당신이에 정교한 수 :

참조) 당신은 당신의 스크립트에서이 차지해야하거나 지속적으로 WMI 서비스를 죽이려 될 겁니다? 'tasklist/v'를 사용하여'CpuTime'으로 프로세스의 전체 목록을 얻을 수는 있지만 어떻게'TotalProcessRuntime'을 얻을 수 있습니까? – tborychowski

14

작업 목록과 함께 쉽게 할 수있는 것처럼 보이지 않습니다, 그래서 내가 VBscript 또는 다른 스크립팅 언어, 또는 다른 접근 방식을 사용하여 이것을 제안 할 것입니다. 배치 파일로 제한하는 경우 다음 각각의 CPUTIME으로 실행중인 프로세스의 목록을 가져올 수 WMIC 명령을 사용할 수 있습니다이 내 테스트에서 100 %의 CPU를 가진 것으로 wmipsrv.exe 보여 주었다

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 

주, WMI 쿼리를 실행하는 동안 그것이 급상승했기 때문입니다.
http://waynes-world-it.blogspot.com/2008/09/useful-general-command-line-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx

+0

PercentProcessorTime 출력별로 정렬 할 수있는 방법이 있습니까? – laggingreflex