python获取cpu/memory/swap/disk/net状态psutil模块实例

psutil是一个跨平台库能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统

我们要使用他需要先安装

pip install psutil

统计CPU的用户/系统/空闲时间

import psutil
print(psutil.cpu_times())

输出

scputimes(user=4395.40625, system=6250.140625, idle=141204.359375, interrupt=225.59375, dpc=198.09375)

查看CPU个数

#查看CPU逻辑个数
psutil.cpu_count()
#查看CPU物理个数
psutil.cpu_count(logical=False)

查看CPU使用情况

#percpu设置为False则是所有CPU平均使用率,否则就列出所有CPU使用率
psutil.cpu_percent(interval=5,percpu=False)

以上是CPU的信息,我们接下来看看内存的信息

print(psutil.virtual_memory())

打印处信息

svmem(total=17033768960, available=10475085824, percent=38.5, used=6558683136, free=10475085824)

然后是swap的信息

print(psutil.swap_memory())

打印出信息

sswap(total=19583905792, used=8935858176, free=10648047616, percent=45.6, sin=0, sout=0)

下面我们再看看磁盘信息

print(psutil.disk_partitions())

打印出信息

[sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS', opts='rw,fixed')]

磁盘IO信息获取

print(psutil.disk_io_counters())
#获取单个磁盘IO信息使用
print(psutil.disk_io_counters(perdisk=True))

打印出信息

{'PhysicalDrive0': sdiskio(read_count=195329, write_count=202019, read_bytes=5904132096, write_bytes=3749375488, read_time=209, write_time=164)}

查看分区使用情况

print(psutil.disk_usage("C:\\"))

打印出C盘信息

sdiskusage(total=256690352128, used=82179559424, free=174510792704, percent=32.0)

最后我们获取下网络IO情况

#获取总的网络IO
print(psutil.net_io_counters())
#获取网卡的IO信息
print(psutil.net_io_counters(pernic=True))

打印出信息

{'以太网': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'vEthernet (
默认交换机)': snetio(bytes_sent=192613, bytes_recv=0, packets_sent=1319, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'vEthernet (yitu_nat)': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'vEthernet (yitu_wlan)': snetio(bytes_sent=23108885, bytes_recv=108587072, packets_sent=146929, packets_recv=190757, errin=0, errout=0, dropin=0, dropout=0), '本地连接* 1': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), '本地连接* 2': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'Loopback Pseudo-Interface 1': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)}


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/4.html