psutil模块的使用

psutil模块的使用

psutil介绍

  • process and system utilities(进程和系统工具)
  • 能够轻松的实现获取系统运行的进程和系统利用率(CPU、内存、磁盘、网络等)信息,主要应用于系统监控。
  • 实现了同等命令命令行实现的功能:ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等
  • 跨平台:linux、windows、OS X、FreeBSD和Sun Solaris等
  • 主要功能包含:CPU、磁盘、内存、网络、进程

psutil安装

​ 源码安装:git clone https://github.com/giampaolo/psutil.git

cd psutil
python3 setup.py install

​ pip3安装,pip3 install psutil,前提需要安装好python

​ 导入使用模块:import psutil

Python 3.6.8 (default, Aug  7 2019, 17:28:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> import psutil

CPU

查看cpu的各项参数

cpu(相当于linux命令:top)

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

psutil.cpu_percent(,[percpu],[interval])#:返回CPU的利用率,percpu为True时显示所有物理核心的利用率,interval不为0时,则阻塞时显示interval执行的时间内的平均利用率
psutil.cpu_times(,[percpu])#:以命名元组(namedtuple)的形式返回cpu的时间花费,percpu=True表示获取每个CPU的时间花费。
其中:
psutil.cpu_times(,[percpu]).user#:执行用户进程的时间
psutil.cpu_times(,[percpu]).system#:执行内核进程时间
psutil.cpu_times(,[percpu]).idle#:闲置的时间
psutil.cpu_times(,[percpu]).iowait#:等待io操作的时间
psutil.cpu_times(,[percpu]).irp#:硬中断时间
psutil.cpu_times(,[percpu]).softirq#:软中断时间
psutil.cpu_times_percent(,[percpu])#:功能和cpu_times大致相同,返回耗时比例
psutil.cpu_stats()#: 以命名元组的形式返回CPU的统计信息,包括上下文切换,中断,软中断和系统调用次数
其中:
psutil.cpu_stats().ctx_switches#:上下文切换次数
psutil.cpu_stats().interrupts#:中断次数
psutil.cpu_stats().soft_interrupts#:软中断次数
psutil.cpu_stats().syscalls#:系统调用次数,linux上始终为0
psutil.cpu_freq()#: 返回cpu频率

memory(内存)

memory(相当于linux命令:free)

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

disk

disk(linux命令:iostat,df)

psutil.disk_io_counters([perdisk])#:以命名元组的形式返回磁盘io统计信息(汇总的),包括读、写的次数,读、写的字节数等
psutil.disk_partitions()#:磁盘挂载分区信息
		device:分区
		mountpoint:挂载点
		fstype:文件系统格式(fat、ext4、 xfs)
		opts:挂载参数
disk_usage#:磁盘使用情况,需要传入一个路径参数
>>> psutil.disk_usage('/')
sdiskusage(total=250685575168, used=103938019328, free=134242258944, percent=43.6)

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

Network

Network(相当于linux命令:ifconfig、who、uptime,netstat)

psutil.net_io_counters([pernic])#:以命名元组的形式返回当前系统中每块网卡的网络io统计信息,包括收发字节数,收发包的数量、出错的情况和删包情况。当pernic为True时,则列出所有网卡的统计信息。
lo :本地回环地址(127.0.0.1)
psutil.net_connections([kind]):以列表的形式返回每个网络连接的详细信息(namedtuple)
	fd:文件描述符
	family:地址簇,ipv4(AF_INET),ipv6
	type:SOCK_STREAM(tcp)、udp
	laddr:本地ip地址
	raddr
	status
	pid
psutil.net_if_addrs()#:以字典的形式返回网卡的配置信息,包括IP地址和mac地址、子网掩码和广播地址。
psutil.net_if_stats()#:返回网卡的详细信息,包括是否启动、通信类型、传输速度与mtu
	mtu:最大传输单元
psutil.users()#:以命名元组的方式返回当前登陆用户的信息,包括用户名,登陆时间,终端
psutil.boot_time()#:以时间戳的形式返回系统的启动时间
使用time模块来处理时间戳

进程管理

进程管理(linux命令:ps、kill)

psutil.pids()#:以列表的形式返回当前正在运行的进程
psutil.pid_exists(1)#:判断给点定的pid是否存在
psutil.Process(1)#:对进程进行封装,可以使用该类的方法获取进行的详细信息,或者给进程发送信号
psutil.process_iter()#:迭代当前正在运行的进程,返回的是每个进程的Process对象
	name:获取进程的名称
	cmdline:获取启动进程的命令行参数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值