psutil稳定可靠,功能强大,跨平台,简单易用,可以监控cpu,内存,磁盘,网络,用户等信息。

cpu
1.psutil.cpu_count()  默认返回逻辑cpu的个数,也可以值idnglogical=False获取cpu的个数
2.psutil.cpu_percent() 返回cpu的利用率
3.psutil.cpu_times() 以命名元祖的形式返回cpu的时间花费,也可以通过percpu参数指定获取每个cpu的统计时间
4.psutil.cpu_times_percent() 与cpu_times类似,但是返回的是耗费时间的比例
5.psutil.cpu_stats() 以命名元祖的形式返回cpu的统计信息,包括上下文切换,中断,软中断和系统调用的次数

内存
1.psutil.virtual_memory() 以命名元组的形式返回内存使用情况
包括总内存,可用内存,内存利用率,buffer和cached等,除了内存利用率,其他字段都以字节为单位返回
2.psutil.swap_memory() 以命名元组的形式返回swap memory的使用情况
显然,对swap memory的统计包含了页的换入与换出。

磁盘
1.psutil.disk_partitions() 返回所有已经挂载的磁盘,
以命名元组的形式返回,含磁盘名称,挂载点,文件系统类型等信息。可以通过disk_partitions获取挂载的磁盘。
2.psutil.disk_usage() 获取磁盘的使用情况,
包括磁盘的容量,已经使用的磁盘容量,磁盘空间利用率等,类似df,disk_usage以元组返回结果,取值方便
3.psutil.disk_io_counters() 以元组形式返回磁盘io统计信息,
包括读的次数,写的次数,读字节数,写字节数。
有了disk_io_counters函数,省去了解析/proc/diskstats文件的烦恼


网络
1.psutil.net_io_counter() 返回当前系统中的网络io统计信息,是监控系统中最需要关注的网络信息。
以元组形式返回了每块网卡的网络io统计信息,
包括收发字节数,收发包的数量,出错情况,与删包情况。
由这个函数就不需要自己解析/proc/net/dev文件内容
2.psutil.net_connections() 以列表形式返回每个为网络连接的详细信息,可以使用该函数查看网络连接状态,
                                       统计连接个数以及处于特定状态的网络连接个数。
3.psutil.net_if_addrs() 以字典的形式返回网卡的配置信息,包括ip地址或mac地址,子网掩码和广播地址。
4.psutil.net_if_stats() 返回网卡的详细信息,包括是否启动,通信类型,传输速度与mtu。

其他(用户,启动时间)
1.psutil.users() 以元组返回当前登陆用户的信息,包括用户名,登陆时间,终端与主机信息。
2.psutil.boot_time()  以时间搓的形式返回系统的启动时间。

datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")

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

init_process=psutil.Process(1)
init_process.name() 获取进程的名字
init_process.cmdline() 获取启动进程的命令行参数
init_process.create_time() 获取进程的创建时间
init_process.num_fds() 进程打开的文件个数
init_process.threds() 进程的子进程个数
init_process.is_running() 判断进程是否正在运行
init_process.send_signal() 给进程发送信号,其作用与os.kill(pid,sig)相同
init_process.kill()发送sigkill信号结束进程,其作用与os.kill(pid,signal.SIGKILL)相同
init_process.terminate() 发送SIGTERM信号结束进程,其作用与os.kill(pid,signal.SIGTERM)相同

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

3.psutil.pid_exists() 判断给定的pid是否存在

4.psutil.process_iter() 迭代当前正在运行的进程

process_iter直接返回Process对象,pids返回进程的pid列表

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注