python-psutil模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-psutil模块相关的知识,希望对你有一定的参考价值。

psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率信息。它主要应用于系统监控,分析和限制系统资源及进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat等。。通常我们获取操作系统信息往往采用编写shell来实现,比如获取物理内存总大小以及已经使用大小,shell命令如下:
技术分享图片
看看使用python的psutil模块如何实现
技术分享图片

8bit(位)=1Byte(字节)
1024Byte(字节)=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB

获取系统性能信息
采集系统的基本性能信息包括CPU、内存、磁盘、网络等,可以完整描述当前系统的运行状态及质量。
1、采集CPU信息
可以使用psutil.cpu_times()方法可以非常简单的得到这些信息,同时也可以获取CPU的硬件相关信息,比如CPU的物理个数与逻辑个数,例如:
技术分享图片

2、采集内存信息
Linux系统的内存利用率信息涉及total(内存总数)、used(已使用的内存数)、free(空闲内存数)、buffer(缓冲使用数)、cache(缓存使用数)、swap(交换分区使用数)等,分别可以使用psutil.virtual_memory()与psutil.swap_memory()方法获取信息,例如:
技术分享图片

3、采集磁盘信息
在系统的所有磁盘信息中,我们比较关注的是磁盘的利用率和IO信息,其中磁盘利用率用psutil.disk_usage方法获取。磁盘IO信息包括read_count(读IO数)、write_count(写IO数)、read_bytes(IO读字节数)、write_bytes(IO写字节数)、read_time(磁盘读时间)、write_time(磁盘写时间)等,这些信息可以通过psutil.disk_io_counters()获取。
技术分享图片

4、网络信息
系统的网络信息与磁盘IO类似,涉及几个关键点,包括bytes_sent(发送字节数)、bytes_recv(接收字节数)、packets_sent(发送数据包数)、packets_recv(接收数据包数)等。这些网络信息使用psutil.net_io_counters()方法获取。
技术分享图片

5、获取用户登录、开机时间等信息
技术分享图片

6、系统进程的管理方法
获得当前系统的进程信息,可以让我们得知应用程序的运行状态,包括进程的启动时间、查看或设置CPU亲和度、内存使用率、IO信息、socket连接、线程数,这些信息可以呈现出指定进程是否存活、资源利用情况。
技术分享图片
技术分享图片

7、popen类的使用
psutil提供的popen类的作用是获取用户启动的应用程序进程信息,以便追踪程序进程的运行状态。
技术分享图片

以上是关于python-psutil模块的主要内容,如果未能解决你的问题,请参考以下文章

python-psutil模块

python-psutil

python-psutil获取进行资源

Python基础(11)_python模块之time模块rando模块hashlibos模块

python模块自学

Python导入模块问题