작업 목록의 CPU 시간을 CPU % 사용으로 변환하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/206805

  •  03-07-2019
  •  | 
  •  

문제

사용하려고합니다 tasklist 내 CPU의 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%? CPU 사용 시간과 CPU 사용 백분율의 관계는 무엇입니까?

도움이 되었습니까?

해결책

TaskList의 CPUTIME는 프로세스 시작 이후 얼마나 많은 CPU 시간 (사이클)이 사용 된 양의 척도이므로이를 백분율로 변환하려면

 (TotalProcessRuntime / CpuTime) / 100

적어도 그게 내가 모은 것입니다 :)

다른 팁

작업 목록으로이 작업을 수행하는 쉬운 방법이없는 것처럼 보이지 않으므로 VBSCRIP 또는 다른 스크립팅 언어로 수행하거나 다른 접근 방식을 사용하는 것이 좋습니다. 배치 파일로 제한되어 있다면 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가 WMI 쿼리를 실행하는 동안 스파이크 되었기 때문에 100% CPU를 갖는 것으로 나타났습니다. 스크립트에서이를 설명해야합니다. 그렇지 않으면 WMI 서비스를 지속적으로 죽이려고합니다.)

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top