目录

一.psutil介绍

二.psutil的安装

三.psutil--- CPU监控(Linux命令:top)

四.psutil--- memory内存监控(Linux命令:free)

五.psutil---disk磁盘监控(Linux命令:iostat,df)

六.psutil--- Network网络监控(Linux命令:ifconfig、who、uptime、netstat)

七.psutil---进程管理(Linux命令:ps、kill)

八.练习:


一.psutil介绍

psutil:process and system utilities

psutil是python中的一个第三方模块,需要下载。它能够轻松的实现获取系统运行的进程和系统利用率(CPU、内存、磁盘、网络等)信息,主要应用于系统监控。实现了同等命令命令行实现的功能:ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。能够跨平台运行。

psutil的主要功能包括:CPU、磁盘、内存、网络、进程等。

二.psutil的安装

1.源码安装:git clone https://github.com/giampaolo/psutil.git
cd psutil
python3 setup.py install

2.先安装相关库:yum install python3-devel,(用yum list |grep python|grep dev  找到包名), pip3 install psutil

3.pycharm中导入使用模块:import psutil(可以直接在pycharm中安装)

三.psutil--- CPU监控(Linux命令:top)

1.psutil.cpu_count(,[logical]):默认返回逻辑CPU的个数,当设置logical的参数为False时,返回物理CPU的个数

2.psutil.cpu_percent(,[percpu],[interval]):返回CPU的利用率,percpu为True时显示所有物理核心的利用率,interval不为0时,则阻塞时显示interval执行的时间内的平均利用率

3.psutil.cpu_times(,[percpu]):以命名元组(namedtuple)的形式返回cpu的时间花费,percpu=True表示获取每个CPU的时间花费。

user:执行用户进程的时间
system:执行内核进程时间
idle:闲置的时间
iowait:等待io操作的时间
irp:硬中断时间
softirq:软中断时间

4.psutil.cpu_times_percent(,[percpu]):功能和cpu_times大致相同,返回耗时比例

5.psutil.cpu_stats(): 以命名元组的形式返回CPU的统计信息,包括上下文切换,中断,软中断和系统调用次数
    ctx_switches:上下文切换次数
    interrupts:中断次数
    soft_interrupts:软中断次数
    syscalls:系统调用次数,linux上始终为0

6.psutil.cpu_freq(): 返回cpu频率

四.psutil--- memory内存监控(Linux命令:free)

1.virtual_memory():以命名元组的形式返回内存使用情况,单位为字节
    total:总物理内存
    available:可用内存,available ~free + buffers + cached
    percent:使用率: percent = (total - available) / total * 100
    used:使用的内存: used  =  total - free - buffers - cache
    free:完全没用使用内存
    active:最近被访问的内存
    inactive:长时间未被访问的内存
    buffers:缓存
    cached:缓存
    slab:内核数据结构缓存的内存

2.swap_memory:以命名元组的形式返回swap/memory使用情况,包含swap中页的换入和换出

五.psutil---disk磁盘监控(Linux命令:iostat,df)

1.psutil.disk_io_counters([perdisk]):以命名元组的形式返回磁盘io统计信息(汇总的),包括读、写的次数,读、写的字节数等

2.psutil.disk_partitions():磁盘挂载分区信息
    device:分区
    mountpoint:挂载点
    fstype:文件系统格式(fat、ext4、 xfs)
    opts:挂载参数

3.disk_usage:磁盘使用情况,需要传入一个路径参数
    >>> psutil.disk_usage('/')
sdiskusage(total=250685575168, used=103938019328, free=134242258944, percent=43.6)

4.iostat   :  %util 数值越大越忙碌,到达了io瓶颈(安装包:yum install sysstat)

六.psutil--- Network网络监控(Linux命令:ifconfig、who、uptime、netstat)

1.psutil.net_io_counters([pernic]):以命名元组的形式返回当前系统中每块网卡的网络io统计信息,包括收发字节数,收发包的数量、出错的情况和删包情况。当pernic为True时,则列出所有网卡的统计信息。

    lo :本地回环地址(127.0.0.1)

2.psutil.net_connections([kind]):以列表的形式返回每个网络连接的详细信息(namedtuple)
    fd:文件描述符
    family:地址簇,ipv4(AF_INET),ipv6
    type:SOCK_STREAM(tcp)、udp
    laddr:本地ip地址
    raddr
    status
    pid

3.psutil.net_if_addrs():以字典的形式返回网卡的配置信息,包括IP地址和mac地址、子网掩码和广播地址。

4.psutil.net_if_stats():返回网卡的详细信息,包括是否启动、通信类型、传输速度与mtu
    mtu:最大传输单元

5.psutil.users():以命名元组的方式返回当前登陆用户的信息,包括用户名,登陆时间,终端

6.psutil.boot_time():以时间戳的形式返回系统的启动时间

七.psutil---进程管理(Linux命令:ps、kill)

1.psutil.pids():以列表的形式返回当前正在运行的进程

2.psutil.pid_exists(1):判断给点定的pid是否存在

3.psutil.Process(1):对进程进行封装,可以使用该类的方法获取进行的详细信息,或者给进程发送信号

4.psutil.process_iter():迭代当前正在运行的进程,返回的是每个进程的Process对象
    name:获取进程的名称

    cmdline:获取启动进程的命令行参数

    create_time:获取进程的创建时间
    uids:进程uid信息
    num_threads:开启的线程数
    exe:进程工作的绝对路径
    kill:发送SIGKILL信号结束进程

八.练习:

使用python编写一个监控脚本,放在Linux系统运行。监控的要求如下:

1.显示当前时间

2.脚本运行之后监控10s,每隔一秒钟输出一次信息

3.显示当前系统CPU的逻辑核数、平均使用率

4.显示总内存的大小(单位M),内存的使用率

5.显示根目录的大小(单位M),根目录的使用率

6.本机的IP地址是多少,网络使用情况,收发了多少m的数据
具体答案在另外一篇博客:https://blog.csdn.net/weixin_43880061/article/details/125378213?spm=1001.2014.3001.5502

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐