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

So verwenden Sie das psutil-Modul von Python

WBOY
Freigeben: 2023-05-17 13:52:06
nach vorne
2132 Leute haben es durchsucht

    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
    Nach dem Login kopieren
    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)
    >>>
    Nach dem Login kopieren

    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
    >>>
    Nach dem Login kopieren

    Erhalten Sie die CPU-Auslastung:

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

    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
    >>>
    Nach dem Login kopieren

    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
    >>>
    Nach dem Login kopieren
    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)
    >>>
    Nach dem Login kopieren

    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)}
    >>>
    Nach dem Login kopieren

    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)}
    >>>
    Nach dem Login kopieren

    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'
    >>>
    Nach dem Login kopieren
    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]
    Nach dem Login kopieren

    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()
    Nach dem Login kopieren

    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!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage