1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python模块psutil 获取系统信息

python模块psutil 获取系统信息

时间:2023-03-26 04:43:50

相关推荐

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)>>>interval和percpu参数与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命令的效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。