系统信息性能模块psutil

psutil是一个跨平台库(第三方库/模块),能够获取系统进程进程及CPU,内存,磁盘、网络使用率等信息;主要用于监控系统,分析和限制系统资源及进程的管理
它实现了n多个同等命令行工具实现的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等命令工具
psutil的单位是字节
psutil官网
psutil使用参考文档

1获取系统性能信息

1.1CPU信息

CPU信息说明
User Time执行用户进程的时间百分比
Systime执行内核进程和中断的时间百分比
Wait IOIO等待使CPU处于idle(空闲)状态的时间百分比
IdleCPU处于idle状态的时间百分比

1、获取CPU的全部信息

import psutil
c=psutil.cpu_times()
#获取CPU的全部信息
print(c)
c=psutil.cpu_times(percpu=True)
#显示所有的逻辑CPU信息
print(c)

2、获取CPU个数

import psutil
c=psutil.cpu_count(logical=False)
#获取物理CPU个数
print(c)

c=psutil.cpu_count()
#获取逻辑CPU个数,默认logical=True
print(c)

3、获取cpu使用率

import psutil
for i in range(3):
    c=str(psutil.cpu_percent(interval=1))
    # 获取CPU使用率,间隔1秒
    print('cpu的使用率:'+c+'%')

for i in range(3):
    c=str(psutil.cpu_percent(interval=1,percpu=True))
    # 获取逻辑CPU使用率,间隔1秒
    print('逻辑cpu的使用率:'+c+'%')

for i in range(1):
    c=str(psutil.cpu_times_percent(interval=1))
    # 获取特定CPU使用率的百分比,间隔1秒,percpu=True是逻辑
    print('cpu的使用率:'+c+'%')

1.2内存信息

内存信息说明
total总内存数
used已使用内存数
free空闲内存
buffers缓冲使用数
cache缓存使用数
swap交换分区使用数

获取内存信息
获取内存部分信息,需要获取全部信息在其中提取

1、获取全部内存信息

import psutil
m=psutil.virtual_memory()
#获取内存全部信息
print(m)
svmem(total=8213225472, available=2455859200, percent=70.1, used=5757366272, free=2455859200)

2、获取总内存大小

import psutil
m=psutil.virtual_memory()#获取内存全部信息
m=str(round(m.total/1024/1024/1024,2))
#获取总内存,总内存转换成GB单位大小,保留两位
print('总内存:'+m+'G')

3、获取空闲内存大小

import psutil
m=psutil.virtual_memory()
m=str(round(m.free/1024/1024/1024,2))
print('空闲内存::'+m+'G')

4、获取已经使用内存大小

import psutil
m=psutil.virtual_memory()
m=str(round(m.used/1024/1024/1024,2))
print('使用内存::'+m+'G')

5、获取交换分区全部的信息

m=psutil.swap_memory()
print(m)
sswap(total=4563402752, used=3675496448, free=887906304, percent=80.5, sin=0, sout=0)

6、获取交换分区的部分信息

import psutil
m=psutil.swap_memory()
m=str(round(m.total/1024/1024/1024,2))
print('总大小:'+m+'\tG')

1.3 磁盘信息

磁盘主要是关注使用率以及IO(读写)信息

磁盘信息获取说明
read_count读IO数
write_count写IO数
read_bytesIO读字节数
write_bytesIO写字节数
read_time磁盘读时间
write_time磁盘写时间

1、获取磁盘全部信息

import psutil
f=psutil.disk_partitions()#获取磁盘全部信息
print(f)
[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed', maxfile=255, maxpath=260), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed', maxfile=255, maxpath=260)]

2、获取指定磁盘数据

import psutil
f=psutil.disk_partitions()
#获取磁盘全部信息
print(f)
f=psutil.disk_usage('/')
#获取根分区大小
print(f)
f=str(round(psutil.disk_usage('C:/').total/1024/1024/1024,2))
#获取C盘的大小,转化GB单位
print('C盘总空间大小:'+f+'G')
#根据这个设置磁盘的使用大小,剩余空间,其他磁盘的空间

3、磁盘的读写信息

import psutil
f=psutil.disk_io_counters()
#获取硬盘总的IO个数和读写信息
print(f)
f=psutil.disk_io_counters(perdisk=True)
#获取单个分区的IO个数和读写信息
print(f)

1.4网络信息

网络信息说明
bytes_sent发送字节数
bytes_recv接收字节数
packets_sent发送数据包数
packets_recv接收数据包数
import psutil
n=psutil.net_io_counters()
#获取网络总的IO信息数,默认pernic=False,默认就是当前网口
print(n)
n=psutil.net_io_counters(pernic=True)
#每个网络接口的IO信息
print(n)

1.5其他系统信息

1、获取当前用户的登录信息

import psutil
n=psutil.users()
#获取当前用户的登录信息
print(n)

2、获取开机系统时间

import psutil,datetime
n=psutil.boot_time()
#获取开机时间,以Linux的时间戳返回,是秒数,你转换一下
n=datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
#设置指定的时间格式返回,转换我们的自然时间
print(n)

3、其他使用方法
在这里插入图片描述

2系统进程信息

2.1进程信息

1、获取进程信息

import psutil
p=psutil.pids()
#列出所有进程
print(p)

import psutil
p=psutil.pids()
#列出所有进程

p=psutil.Process(8332)
#获取进程的详细信息,服务名字,状态等
print(p)

p=psutil.Process(8332).name()
#获取服务进程的单独项,进程id,状态、服务名字等,更改后面参数即可
print(p)

2、进程其他信息

import psutil,datetime
p=psutil.Process(8332).exe()
#获取服务的bin路径
print(p)
p=psutil.Process(8332).cwd()
#进程服务的绝对路径
print(p)
p=psutil.Process(8332).status()
#服务的状态
print(p)

p=datetime.datetime.utcfromtimestamp(psutil.Process(8332).create_time()).strftime("%Y-%m-%d %H:%M:%S")
#服务的创建时间
print(p)

# gids()获取没有成功

p=psutil.Process(8332).cpu_times()
#进程cpu时间信息,user和system两个时间
print(p)

p=psutil.Process(8332).cpu_affinity()
#get进程cpu的亲和度
print(p)

p=psutil.Process(8332).memory_percent()
#进程内存使用率
print(p)

p=psutil.Process(8332).memory_info()
#进程内存内存rss、vms信息
print(p)

p=psutil.Process(8332).io_counters()
#进程读写信息
print(p)

p=psutil.Process(8332).connections()
#返回打开进程socket的namedutples列表,fs、family等信息
print(p)


2.2popen类的使用

暂代

psutil提供的popen类的作用是获取用户启动的应用程序的信息,便于跟踪进程

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅水鲤鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值