Maison  >  Article  >  développement back-end  >  Comment utiliser le module psutil de Python

Comment utiliser le module psutil de Python

WBOY
WBOYavant
2023-05-17 13:52:062054parcourir

    1. module psutil :

    1.psutil introduction

    psutil est une bibliothèque multiplateforme (//pythonhosted.org/psutil/) qui peut facilement obtenir les processus et l'utilisation du système en cours d'exécution (y compris les informations sur le processeur, la mémoire, le disque, le réseau, etc.). Il est principalement utilisé pour la surveillance du système, l’analyse des performances et la gestion des processus. Il implémente les fonctions fournies par des outils de ligne de commande équivalents, tels que ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, tasket, pmap, etc. . Prend actuellement en charge les systèmes d'exploitation 32 bits et 64 bits tels que Linux, Windows, OS Informations sur le processeur

    Utilisez la méthode cpu_times pour obtenir les informations complètes du processeur comme indiqué ci-dessous.

    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

    Obtenez une donnée unique, telle que le temps CPU de l'utilisateur ou le temps d'attente des E/S, comme indiqué ci-dessous :
    >>> 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)
    >>>
    Obtenez le numéro logique et physique du CPU, la valeur logique par défaut est True.

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

    Obtenir l'utilisation du processeur :

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

    2. Informations sur la mémoire

    La méthode virtual_memory est principalement utilisée pour obtenir des informations sur la mémoire. Pour utiliser swap, utilisez la méthode swap_memory.

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

    Le pourcentage représente la proportion de mémoire réellement utilisée, soit (1047543808-717537280)/1047543808*100 %. Disponible indique la mémoire qui peut encore être utilisée.

    3. Informations sur le disque

    Il existe deux parties principales des informations sur le disque, l'une est l'utilisation du disque et l'autre est io. Elles peuvent être obtenues respectivement via les méthodes disk_usage et disk_io_counters.

    Obtenez d'abord les informations sur la partition, puis vérifiez l'utilisation de la partition racine :

    >>> 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
    >>>

    La méthode par défaut disk_io_counters obtient le numéro IO total et les informations de lecture et d'écriture du disque dur si vous avez besoin d'obtenir les IO et de lire et de lire et d'écrire. écrivez les informations d'une seule partition, ajoutez le paramètre " perdisk = True ".
    >>> 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. Informations réseau :

    Les méthodes d'utilisation du réseau io et du disque io sont similaires. La méthode net_io_counters est principalement utilisée. Si vous avez besoin d'obtenir les informations io d'une seule carte réseau, ajoutez le pernic=True. paramètre.

    >>> 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. Autres informations système :

    1. Obtenez l'heure de démarrage

    #获取网络总的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. Affichez tous les processus système

    ##以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. script d'information
    >>> 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]

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer