복붙노트

[PYTHON] 파이썬에서의 프로세스 당 CPU 사용량

PYTHON

파이썬에서의 프로세스 당 CPU 사용량

현재 파이썬 앱이 사용하고있는 프로세서 사용량 (최대 %)을 볼 수 있습니까?

대본: 내 호스트는 CPU 사용량의 X % 이상을 소비하지 않는 한 내 앱을 실행할 수있게하므로 '자체 점검'및 속도 저하를 원합니다. 그렇다면 앱에서 사용하는 CPU의 양을 어떻게 알 수 있습니까?

대상 플랫폼은 * nix이지만 Win 호스트에서도이 작업을 수행하고 싶습니다.

해결법

  1. ==============================

    1.

    >>> import os
    >>> os.times()
    (1.296875, 0.765625, 0.0, 0.0, 0.0)
    >>> print os.times.__doc__
    times() -> (utime, stime, cutime, cstime, elapsed_time)
    
    Return a tuple of floating point numbers indicating process times.
    

    (2.5) 매뉴얼에서 :

  2. ==============================

    2.psutil을 사용하여 :

    psutil을 사용하여 :

    >>> import psutil
    >>> p = psutil.Process()
    >>> p.cpu_times()
    cputimes(user=0.06, system=0.03)
    >>> p.cpu_percent(interval=1)
    0.0
    >>> 
    
  3. ==============================

    3.리소스 모듈은 getrusage를 제공하며 적어도 유닉스 계열 플랫폼에서 필요한 정보를 제공 할 수 있습니다.

    리소스 모듈은 getrusage를 제공하며 적어도 유닉스 계열 플랫폼에서 필요한 정보를 제공 할 수 있습니다.

    백분율로 표시된 CPU 사용량은 항상 일정 기간 동안 측정됩니다. 본질적으로, 이것은 프로그램이 간격 시간으로 나눈 것을 수행하는 데 걸리는 시간입니다.

    예를 들어 응용 프로그램이 5 초 동안 2 초의 CPU 시간을 소비하면 CPU의 40 %를 사용한다고 할 수 있습니다.

    이 계산은 멀티 프로세서 시스템을 사용할 때 까다로울 수 있습니다. 응용 프로그램이 2- 프로세서 시스템에서 5 초의 벽시계 시간에 7 초의 CPU 시간을 사용하는 경우 CPU 사용률이 140 % 또는 70 %라고 말합니까?

    업데이트 : gimel에서 언급했듯이 os.times 함수는이 정보를 플랫폼 독립적 인 방식으로 제공합니다. 물론 위 계산 노트는 여전히 적용됩니다.

  4. ==============================

    4.time.clock ()을 사용하여 CPU 시간을 가져옵니다. CPU 사용률 백분율을 구하려면 CPU 시간 경과 / 경과 시간

    time.clock ()을 사용하여 CPU 시간을 가져옵니다. CPU 사용률 백분율을 구하려면 CPU 시간 경과 / 경과 시간

    예를 들어 CPU 경과 시간이 0.2이고 경과 시간이 1이면 CPU 사용량은 20 %입니다.

    참고 : 가지고있는 프로세서의 수에 따라 나누어야합니다. 2 개의 듀얼 코어가있는 경우 :

    import decimal,timeit
    decimal.getcontext().prec=1000
    def torture():
        decimal.Decimal(2).sqrt()
        time.sleep(0.1)
    import time
    clock=time.clock()
    while 1:
        clock=timeit.timeit(torture,number=10)
        tclock=time.clock()
        print((tclock-clock)*p)
        clock=tclock
    
  5. from https://stackoverflow.com/questions/276281/cpu-usage-per-process-in-python by cc-by-sa and MIT license