psutil---采集操作系统的基本性能信息

本文介绍了如何使用Python的psutil模块采集操作系统的性能信息,包括CPU、内存、网络和硬盘状态。通过示例代码展示了如何获取内存的total、used、free等参数,网络的bytes_sent、bytes_recv等统计,CPU信息以及硬盘的利用率和IO信息,并提到了在Windows下查看和结束进程的功能。
摘要由CSDN通过智能技术生成

采集系统的基本性能信息包括CPU、内存、磁盘、网络等,可以完整描述当前系统的运行状态及质量。psutil模块已经封装了这些方法,用户可以根据自身的应用场景,调用相应的方法来满足需求,非常简单实用。

(1)内存信息
Linux系统的内存利用率信息涉及total(内存总数)、used(已使用的内存数)、free(空闲内存数)、buffers(缓冲使用数)、cache(缓存使用数)、swap(交换分区使用数)等,分别使用psutil.virtual_memory()与psutil.swap_memory()方法获取这些信息,具体见下面的操作例子:

import psutil

获取内存信息

phymem=psutil.virtual_memory()
print('内存信息:',phymem)
print(type(phymem.used))
print('已使用内存:',str(round(phymem.used/1024/1024/1024,1))+'G')
print('总内存:',str(round(phymem.total/1024/1024/1024,1))+'G')
print('空闲内存:',str(round(phymem.free/1024/1024/1024,5))+'G')

print('获取SWAP分区信息:',psutil.swap_memory())

运行结果:

内存信息: svmem(total=8589934592, available=1781874688, percent=79.3, used=6217367552, free=36175872, active=1827381248, inactive=1745698816, wired=2644287488)
<class 'int'>
已使用内存: 5.8G
总内存: 8.0G
空闲内存: 0.03369G
获取SWAP分区信息: sswap(total=3221225472, used=1991770112, free=1229455360, percent=61.8, sin=317321252864, sout=29568856064)

(2)网络信息:
系统的网络信息与磁盘IO类似,涉及几个关键点,包括bytes_sent(发送字节数)、bytes_recv=28220119(接收字节数)、packets_sent=200978(发送数据包数)、packets_recv=212672(接收数据包数)等。这些网络信息使用psutil.net_io_counters()方法获取,具体见下面的操作例子:

获取网络信息

net_io=psutil.net_io_counters()
print('获取网络总的IO信息:',net_io)
net_in=psutil.net_io_counters(pernic=True)
print('pernic=True:每一个网络接口的IO信息:',net_in)
print('发送的字节数:bytes_sent:',net_io.bytes_sent)
print('接受的字节数:bytes_recv:',net_io.bytes_recv)
print('发送的数据包数:packets_sent:',net_io.packets_sent)
print('接受的数据包数:packets_recv:',net_io.packets_recv)

运行结果:

获取网络总的IO信息: snetio(bytes_sent=430844928, bytes_recv=6605564928, packets_sent=2947768, packets_recv=9266213, errin=0, errout=0, dropin=0, dropout=0)

pernic=True:每一个网络接口的IO信息: {
  'lo0': snetio(bytes_sent=8908800, bytes_recv=8908800, packets_sent=53661, packets_recv=53661, errin=0, errout=0, dropin=0, dropout=0), 'gif0': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'stf0': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'XHC20': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'en0': snetio(bytes_sent=421856256, bytes_recv=6596570112, packets_s
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值