系统性能信息模块psutil
psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(cpu,内存,磁盘,网络等)信息。主要用于系统监控,分析和限制系统资源及进程的管理。
psutil的安装
基于centos7的安装
下载安装包
wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz
安装gcc等依赖包
yum install gcc python-devel
解压安装psutil
tar zxfv psutil-2.1.3.tar.gz
cd psutil-2.1.3
python setup.py install
用import psutil出现下图提示,证明psutil安装完成
获取系统性能信息
采集系统信息的基本性能包括CPU,内存,磁盘,网络等,可以完整描述当前系统的运行状态及质量。
CPU信息
import psutil
psutil.cpu_times()
#user:用户进程花费的时间
#nice:用户模式执行Niced优先级进程花费的时间
#system:内核模式进程花费的时间
#idle:闲置时间
#iowait:等待I/O完成的时间
#irq:处理硬件中断的时间
#softirq:处理软件中断的时间
#steal:虚拟化环境中运行的其他操作系统花费的时间
#guest:在linux内核的控制下为客户端操作系统运行虚拟CPU所花费的时间
#guest_nice:虚拟机运行niced所花费的时间
psutil.cpu_times().user
psutil.cpu_count()
内存信息的采集
系统的内存利用率信息涉及total(内存总数)、used(已使用的内存数)、free(空闲内存数)、buffers(缓冲使用数)、cache(缓存使用数)、swap(交换分区使用数等)。分别使用psutil.virtual_memory(),psutil.swap_memory等获取。
磁盘信息
在系统的磁盘信息中,我们更加关注的是磁盘利用率及IO信息。(io:输入、输出的信息)
如下图,获取磁盘的完整信息:
如下图,获取分区参数的使用情况:
如下图:获取硬盘总的IO个数、读写信息:
如下图,获取单个磁盘的IO信息、读写信息
网络信息
系统的网络信息主要包括bytes_sent(发送字节数)、bytes_rew=28220119(接收字节数)、packets_sent(发送数据包数)、
packets_recv(接收数据包数)等,用psutil.net_io_counters()方法获取。
如下图,查看网络信息的总io,默认pernic=False
如下图,输出每一个网络接口的IO信息。
其他系统信息
还支持获取用户登录、开机、时间等信息。
如下图,返回当前登录系统的用户信息。
如下图,获取开机时间,以Linux时间戳格式返回
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
系统进程管理
获取当前系统的进程信息,可以让运维人员得知应用程序的运行状态,包括系统进程的启动时间、查看或设置CPU亲和度、内存使用率、IO信息,socket连接、线程数等。
进程信息
具体例子如下:
用psutil.pids()来获取当下系统的全部进程号。
通过以下命令,查看具体的进程对应的服务名称
>>> p=psutil.Process(1)
>>> p.name()
'systemd'