注: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过程,进程)
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄