Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie das psutil-Modul von Python

So verwenden Sie das psutil-Modul von Python

WBOY
WBOYnach vorne
2023-05-17 13:52:062126Durchsuche

    1. psutil-Modul:

    1. psutil-Einführung

    # 🎜🎜#psutil ist eine plattformübergreifende Bibliothek (//pythonhosted.org/psutil/), mit der Sie problemlos Informationen über die auf dem System ausgeführten Prozesse und Systemauslastung (einschließlich CPU, Speicher, Festplatte, Netzwerk usw.) abrufen können. Es wird hauptsächlich zur Systemüberwachung, Leistungsanalyse und Prozessverwaltung verwendet. Es implementiert die Funktionen, die von entsprechenden Befehlszeilentools wie ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, tasket, pmap usw. bereitgestellt werden . Unterstützt derzeit 32-Bit- und 64-Bit-Betriebssysteme wie Linux, Windows, OS 2. Verwenden Sie zum Abrufen grundlegender Systeminformationen:

    1.CPU-Informationen

    #🎜🎜 #Verwenden Sie die Methode cpu_times, um vollständige Informationen zur CPU zu erhalten, wie unten gezeigt.

    CentOS安装psutil包:
    python版本:3.5
    wget https://pypi.python.org/packages/source/p/psutil/psutil-3.2.1.tar.gz --no-check-certificate
    tar zxvf psutil-3.2.1.tar.gz
    cd psutil-3.2.1
    python setup.py install
    Windos安装psutil包:
    D:\python35\Scripts>pip3.exe install psutil
    Collecting psutil
      Downloading psutil-5.3.1-cp35-cp35m-win_amd64.whl (215kB)
        100% |████████████████████████████████| 225kB 84kB/s
    Installing collected packages: psutil
    Successfully installed psutil-5.3.1
    Rufen Sie einzelne Daten ab, z. B. die CPU-Zeit oder die E/A-Wartezeit des Benutzers, wie unten gezeigt:
    >>> psutil.cpu_times()
    scputimes(user=650613.02, nice=22.14, system=154916.5, idle=16702285.26, iowait=68894.55, irq=3.38, softirq=7075.65, steal=0.0, guest=0.0)
    >>>

    Rufen Sie die logische und physische Anzahl der CPUs ab, die Standardlogik Der Wert ist wahr.

    >>> psutil.cpu_times().user
    650617.11
    >>> psutil.cpu_times().iowait
    68894.63
    >>>

    Erhalten Sie die CPU-Auslastung:

    #CPU逻辑个数
    >>> psutil.cpu_count()
    2
    #CPU物理个数
    >>> psutil.cpu_count(logical=False)
    1
    >>>

    2. Speicherinformationen

    Die Hauptverwendungen zum Abrufen von Speicherinformationen virtual_memory-Methode. Um Swap zu verwenden, verwenden Sie die Methode swap_memory.

    >>> psutil.cpu_percent()
    2.5
    >>> psutil.cpu_percent(1)
    2.5
    >>>

    Prozent stellt den tatsächlich verwendeten Speicheranteil dar, also (1047543808-717537280)/1047543808*100 %. „verfügbar“ gibt an, welcher Speicher noch nutzbar ist.

    3. Festplatteninformationen

    Die Festplatteninformationen bestehen hauptsächlich aus zwei Teilen, einer ist die Festplattenauslastung und der andere ist io, das können sein übergeben bzw. erhalten durch die Methoden disk_usage und disk_io_counters.

    Erhalten Sie zuerst die Partitionsinformationen und sehen Sie sich dann die Nutzung der Root-Partition an:

    >>> mem = psutil.virtual_memory()
    >>> mem
    svmem(total=4018601984, available=1066205184, percent=73.5, used=3904004096, free=114597888, active=3302174720, inactive=426078208, buffers=156520448, cached=795086848)
    >>> mem.total
    4018601984
    >>> mem.used
    3904004096
    >>> mem.free
    114597888
    >>> print(mem.total/1024/1024)
    3832.4375
    >>>
    Die Standardmethode disk_io_counters ruft die Gesamt-IO-Nummer sowie Lese- und Schreibinformationen der ab Festplatte, falls erforderlich. Rufen Sie die E/A- sowie Lese- und Schreibinformationen einer einzelnen Partition sowie den Parameter „perdisk=True“ ab.
    >>> psutil.disk_partitions()
    [sdiskpart(device='/dev/mapper/root', mountpoint='/', fstype='ext4', opts='rw,errors=remount-ro'), sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext2', opts='rw')]
    >>> psutil.disk_usage('/')
    sdiskusage(total=42273669120, used=17241096192, free=22885195776, percent=40.8)
    >>>

    4. Netzwerkinformationen:

    Die Methode net_io_counters wird hauptsächlich verwendet Sie benötigen eine einzelne Netzwerkkarten-IO-Information sowie den Parameter pernic=True.

    >>> psutil.disk_io_counters()
    sdiskio(read_count=638190, write_count=77080153, read_bytes=16037795840, write_bytes=1628871606272, read_time=2307367, write_time=1777841305)
    >>> psutil.disk_io_counters(perdisk=True)
    {'vdb1': sdiskio(read_count=312, write_count=0, read_bytes=1238016, write_bytes=0, read_time=95, write_time=0), 'vda1': sdiskio(read_count=637878, write_count=77080257, read_bytes=16036557824, write_bytes=1628873314304, read_time=2307272, write_time=1777841879)}
    >>>

    5. Weitere Systeminformationen:

    1. Holen Sie sich die Startzeit

    #获取网络总的io情况
    >>> 
    >>> psutil.net_io_counters()
    snetio(bytes_sent=525490132009, bytes_recv=409145642892, packets_sent=948527563, packets_recv=778182181, errin=0, errout=0, dropin=0, dropout=0)
    #获取网卡的io情况
    >>> 
    >>> psutil.net_io_counters(pernic=True)
    {'lo': snetio(bytes_sent=56524704027, bytes_recv=56524704027, packets_sent=33602236, packets_recv=33602236, errin=0, errout=0, dropin=0, dropout=0), 'eth0': snetio(bytes_sent=468966480940, bytes_recv=352622081327, packets_sent=914930488, packets_recv=744583332, errin=0, errout=0, dropin=0, dropout=0)}
    >>>

    2 Informationsprozess

    ##以linux时间格式返回,可以使用时间戳转换
    >>> psutil.boot_time()    
    1496647567.0
    #转换成自然时间格式
    >>> psutil.boot_time()
    1496647567.0
    >>> datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S")
    '2017-06-05 15: 26: 07'
    >>>
    3. Einen einzelnen Prozess anzeigen
    >>> psutil.pids()
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 52, 53, 60, 61, 63, 64, 65, 97, 98, 279, 280, 331, 398, 481, 676, 693, 769, 845, 848, 1023, 1085, 1108, 1355, 1366, 1457, 1474, 1475, 1494, 1541, 1543, 1545, 1546, 1548, 1550, 1552, 2829, 12436, 12913, 13129, 16022, 16029, 16030, 16031, 16032, 16033, 16518, 16520, 17088, 17124, 19203, 25382, 32679]

    System-Hardware-Skript anzeigen:
    Hardware-Informationsskript
    p = psutil.Process(16031)
    p.name()      #进程名
    p.exe()         #进程的bin路径
    p.cwd()        #进程的工作目录绝对路径
    p.status()     #进程状态
    p.create_time()  #进程创建时间
    p.uids()      #进程uid信息
    p.gids()      #进程的gid信息
    p.cpu_times()    #进程的cpu时间信息,包括user,system两个cpu信息
    p.cpu_affinity()  #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好
    p.memory_percent()  #进程内存利用率
    p.memory_info()    #进程内存rss,vms信息
    p.io_counters()    #进程的IO信息,包括读写IO数字及参数
    p.connectios()    #返回进程列表
    p.num_threads()  #进程开启的线程数
    听过psutil的Popen方法启动应用程序,可以跟踪程序的相关信息
    from subprocess import PIPE
    p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE)
    p.name()
    p.username()

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie das psutil-Modul von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen