psutil模块的基础使用
注:Python并没有自带psutil模块,需要自己去安装
安装psutil模块
pip install psutil
or
pip3 install psutil
一、导入模块
import psutil from psutil import *
二、获取CPU相关信息
#获取CPU总数 print("CPU总数:",cpu_count()) #获取不同状态下cpu运行时间 print("各状态下CPU运行时间:",cpu_times()) #获取CPU执行用户(user)进程时间 print('CPU 执行用户进程时间:',cpu_times().user) #获取CPU执行系统调用(system)时间 print('CPU 执行系统调用时间:',cpu_times().system) #获取CPU空闲等待时间 print('CPU 空闲等待 时间:',cpu_times().idle) #获取CPU响应中断时间 print('CPU 响应中断 时间:',cpu_times().interrupt) #CPU使用率:不加参数为上一次调用到现在的使用率 print("CPU 使用率:",cpu_percent()) #3秒内CPU使用率 print("CPU 3s内使用率:",cpu_percent(interval=3)) #3秒内每个CPU使用率 print("每个逻辑 CPU的使用率: ",cpu_percent(percpu=True)) #cpu各个状态下使用情况 print("CPU 各个状态使用情况:",cpu_times_percent()) #每个CPU各个状态使用情况 print("各个CPU 各个状态使用情况:") cpuinfos = cpu_times_percent(percpu = True) for i in cpuinfos: print(i) input("按回车键退出!")
概述: 2 # cpu_count --统计CPU数量 3 # cpu_times --获取不同状态下cpu运行时间 4 # cpu_times.user/system/idle/interrupt 5 # cpu_percent() --获取cpu使用率 6 # cpu_times_percent() --获取cpu使用情况
三、获取RAM(内存使用情况)
① 未优化代码:
#获取内存使用情况,不同系统返回值不同 mem = virtual_memory() #获取swap内存使用情况:swap_memory() #1M = 1024*1024 #1G = 1024*1024*1024 M = 1024*1024 G = M*1024 #系统内存 print("系统内存: ", mem) #总内存 print("总 内存: ",(mem.total)) #空闲内存 print("空闲内存: ",mem.available) #使用内存 print("使用内存: ",mem.used) #未使用内存 print("未使用内存: ",mem.free) #内存使用率 print("内存使用率: ",mem.percent) #swap内存 print("swap 内存: ",swap_memory())
概述: # virtual_memory() --获取内存使用情况 # virtual_menory().total/available/used/free/percent/momory # swap_memory() --获取交换内存使用情况 "//"地板除(整除) "/"普通除(留余)
② 对代码进行优化输出
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。#系统内存 print("系统内存: ", mem) #总内存 print("总 内存: %dM %.2fG" % (mem.total//M,mem.total/G)) #空闲内存 print("空闲内存: %dM %.2fG" % (mem.available//M,mem.available/G)) #使用内存 print("使用内存: %dM %.2fG" % (mem.used//M,mem.used/G)) #未使用内存 print("未使用内存: %dM %.2fG" % (mem.free//M,mem.free/G)) #内存使用率 print("内存使用率: %d%%"% mem.percent) #swap内存 print("swap 内存: ",swap_memory())
四、获取磁盘信息
#获取磁盘分区 devs = disk_partitions() #显示硬盘信息 print(devs) #硬盘名称与挂载点,文件类型: for dev in devs: print("硬盘名:%s ,挂载点:%s ,文件类型:%s" % (dev.device,dev.mountpoint,dev.fstype)) #获取单个磁盘使用情况 print(psutil.disk_usage("F:\\"))
概述: 1 # disk_partitions() --获取磁盘分区 2 # disk_partitions().device --获取磁盘名 3 # disk_partitions().mountpoint --获取挂载点 4 # disk_partitions().fstype --获取磁盘类型 5 ------------------------------------------------ 6 #注意盘符,输入如果是'\'会出现错误,因为表示转义 7 # disk_usage(path) --获取磁盘使用情况,path为路径
将代码定义为函数:
def showdiskinfo(path): G = 1024*1024*1024 diskinfo = disk_usage(paht) print(path,diskinfo) print("%s 大小:%dG,已使用:%dG,未使用:%dG,使用百分比:%D%%"%\ (path.diskinfo.total//G,diskinfo.used//G,diskinfo.free//G,diskinfo.percent))
五、获取硬盘读写信息
diskrw = psutil.disk_io_counters() #diskrw为硬盘的总的读写信息 print(diskrw) diskrws = psutil.disk_io_counters(perdisk=True) #diskrws为字典类型,表示每个分区读写信息,观察diskrw与diskrws值的关系 print(diskrws)
概述: 1 # psutil.disk_io_counters(perdisk=False,nowrap=True) --硬盘IO读取信息
六、获取硬盘的PID号
#主要信息:进程名,状态:创建时间,CPU内存使用情况,线程数
p = psutil.Process(0) print("进程名称:",p.name()) print("运行状态:",p.status()) print("创建时间:",p.create_time()) print("CPU信息",p.cpu_times()) print("内存信息:",p.memory_percent()) print("内存使用:",p.memory_info()) print("IO信息:",p.io_counters()) print("线程数:",p.num_threads())
概述: 1 # psutil.pids() ---获取进程ID(每个进程都有唯一ID) 2 # psutil.Process(pid) ---根据进程ID获取process对象(process过程,进程)

更多精彩