python模块psutil 获取系统信息

CPU信息

1. 查看CPU信息:cpu_times()

以namedtuple的形式返回系统范围内的CPU时间。每个CPU时间表示CPU在给定模式下花费的秒数。
percpu为True时,返回每个CPU的命名元组列表。列表的第一个元素指的是第一个CPU,第二个元素指的是第二个CPU,以此类推。列表的顺序在调用之间是一致的。
在这里插入图片描述
在这里插入图片描述
也可以针对单个信息查看
在这里插入图片描述

2. cpu个数:cpu_count()

返回系统中逻辑cpu的数量(与Python 3.4中的os.cpu_count()相同)。如果logical为False,则只返回物理内核的数量(例如,不包括超线程cpu)。如果未确定,则返回None。返回值在第一次调用后缓存。如果需要,可以这样清除缓存:psutil.cpu_count.cache_clear()
在这里插入图片描述

cpu利用率:cpu_percent()

返回一个浮点数,该浮点数表示当前系统范围内CPU利用率的百分比。当interval为>0时,比较在该interval(阻塞)之前和之后系统CPU运行的时间。当interval为0.0或None时,比较自上次调用或模块导入以来经过的系统CPU时间,立即返回(非阻塞)。这意味着第一次调用它将返回一个无意义的0.0值,您应该忽略这个值。在这种情况下,为了准确起见,建议在两次调用之间至少用0.1秒调用此函数。当percpu为True时,返回一个浮点数列表,表示每个CPU的利用率百分比。列表的第一个元素指的是第一个CPU,第二个元素指的是第二个CPU,以此类推。列表的顺序在调用之间是一致的。

在这里插入图片描述

cpu利用率详细:cpu_times_percent()

与cpu_percent()相同,但是提供cpu_times()返回的每个特定CPU时间的利用率百分比。例如,在Linux上,我们将得到:

cpu_times_percent ()cpupercent(user=4.8, nice=0.0, system=4.8, idle=90.5, iowait=0.0,irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)>>>intervalpercpu参数与cpu_percent()中的含义相同。

在这里插入图片描述

内存信息

内存信息的获取主要使用virtual_memory方法。swap使用就用swap_memory方法。

1. virtual_memory()

以namedtuple的形式返回关于系统内存使用情况的统计信息包括以下字段,以字节表示:-总:可用的物理内存总量。——可用:可以立即分配给进程的内存,而不需要系统进入交换。这是通过对不同平台的不同内存值求和来计算的,它应该用于以跨平台的方式监视实际内存使用情况。- %:使用百分比计算为(total - available) / total * 100-使用:所使用的内存,根据平台的不同计算不同,仅用于信息目的:macOS:活动+非活动+有线BSD:活动+有线+缓存Linux:完全免费-免费的:可用的内存根本没有被使用(0);注意,这并没有反映实际可用内存(而是使用“available”)
在这里插入图片描述

2. swap_memory()

返回系统交换内存统计数据作为一个命名元组包括以下字段:

  • total:以字节为单位的总交换内存
  • used:以字节为单位使用的交换内存
  • free:以字节为单位的自由交换内存
  • 百分比:使用百分比
  • sin:没有。系统从磁盘交换进来的字节数(累计)
  • sout:没有。系统从磁盘交换出来的字节数(累计)
    在这里插入图片描述

磁盘信息

磁盘信息主要有两部分,一个是磁盘的利用率,一个是io,他们分别可以通过disk_usage和disk_io_counters方法获取。

1. disk_partitions()

返回挂载分区的列表(设备、挂载点、fstype、opts) namedtuple。“opts”字段是一个原始字符串,由逗号分隔,表示装载选项,这些选项可能随平台的不同而不同。如果all参数为False,则只返回物理设备,忽略其他所有参数。
在这里插入图片描述

2. disk_io_counters()

返回系统磁盘I/O统计数据作为一个命名元组,包括

  • read_count:读取的次数- write_count:写的次数
  • read_bytes:读取的字节数
  • write_bytes:写入的字节数
  • read_time:从磁盘读取的时间(以ms为单位
  • write_time:写入磁盘的时间(以ms为单位)特定于平台的:
  • busy_time: (Linux, FreeBSD)用于实际I/Os的时间(以ms为单位)
  • read_merged_count (Linux):合并读取的数量
  • write_merged_count (Linux):合并写入的数量
  • 如果perdisk为真,则为系统上安装的每个物理磁盘返回相同的信息,作为一个字典,分区名称作为键,上面描述的namedtuple作为值。如果nowrap为真,它将检测并调整溢出和换行的数字(从0重新启动),并将“旧值”添加到“新值”,以便返回的数字将始终增加或保持不变,但不会减少。“disk_io_counter .cache_clear()”可用于使缓存无效。在最近的Windows版本’diskperf -y’命令可能需要先执行,否则该函数将找不到任何磁盘。

默认disk_io_counters方法获取的是硬盘总的io数和读写信息,如果需要获取单个分区的io和读写信息加上"perdisk=True"参数

在这里插入图片描述

网络信息

1. 网络总的io情况:net_io_counters()

返回网络I/O统计数据作为一个命名元组,包括以下字段:

  • bytes_sent:发送的字节数
  • bytes_recv:接收的字节数
  • packets_sent:发送的数据包数量
  • packets_recv:接收到的数据包数量
  • errin:接收错误的总数
  • errout:发送时错误的总数
  • dropin:被丢弃的传入包的总数
  • dropout:被丢弃的发送包的总数(macOS和BSD总是0)
  • 如果pernic为真,则为每一个返回相同的信息网络接口作为字典安装在系统上使用网络接口名称作为键和namedtuple上面描述的值。如果nowrap为真,它将检测并调整溢出的数字然后换行(从0重新启动),并将“旧值”添加到“新值”中返回的数字总是在增加或保持不变,但从未减少。“disk_io_counter .cache_clear()”可用于使缓存。

如果需要获取单个网卡的io信息,加上pernic=True参数。
在这里插入图片描述

系统信息

系统的开机时间:boot_time()

在这里插入图片描述

系统硬件温度:sensors_temperatures()

(返回值目前没有弄清楚具体的含义,有了解的,希望可以不吝赐教)
在这里插入图片描述

PS:psutil.test()

psutil还提供了一个test()函数,可以模拟出ps命令的效果:
在这里插入图片描述

发布了249 篇原创文章 · 获赞 170 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/gymaisyl/article/details/101301401
今日推荐