在 python 生态中广泛使用的开源项目 psutil ,其提供了便利的函数获取操作系统的信息。
CPU
import psutil as p
# 与 cpu 相关的功能函数
p.cpu_count() # 逻辑cpu个数
p.cpu_count(logical=False) # 物理cpu个数
p.cpu_percent() # 获取上次调用cpu_percent 以来整体cpu的使用率
p.cpu_percent(percpu=True) # 每个cpu的使用率
p.cpu_percent(interval=2, percpu=True) # 阻塞式获取cpu使用率 interval 参数单位秒
p.cpu_times() # 元组形式返回cpu的时间花费 可以使用 percpu 参数
p.cpu_times_percent # 同上
p.cpu_stats() # cpu 统计信息
#返回值:上下文切换、中断、软中断和系统调用次数
#scpustats(ctx_switches=791011349, interrupts=386195249, soft_interrupts=109095400, syscalls=0)
cpu_times() 指令返回值及返回值含义
memory
import psutil as p
#内存相关功能函数
p.virtual_memory() # 返回内存使用情况:总内存,可以内存,内存利用率,buffer,cashed
# svmem(total=1927946240, available=1088053248, percent=43.6, used=647380992, free=164442112, active=1187905536, inactive=395968512, buffers=132792320, cached=983330816, shared=536576, slab=143171584)
p.swap_memory() # 返回swap memory的使用情况
#sswap(total=0, used=0, free=0, percent=0.0, sin=0, sout=0)
disk
import psutil as p
p.disk_partitions() # 返回所有挂在的磁盘
p.disk_usage() # 获取磁盘使用情况
p.disk_io_counters() # 返回磁盘io统计信息
net
import psutil as p
p.net_io_counters() # 返回网络中io信息 收发字节数,收发包数量,出错情况,删包情况
p.net_connections() # 网络连接状态
p.net_if_addrs() # 网卡配置信息
p.net_if_stats() # 网卡详细信息
其他
p.users() # 当前登录用户信息
p.boot_time() # 系统使用时间
进程管理
import psutil as p
p.Process(1) # 获取进程详细信息
#name 进程名字、cmdline 启动进程的指令、create_time 进程创建时间
#num_fds 进程打开文件数、num_threads 进程的子进程个数
#is_running 是否在运行、send_signal 发送新号、kill 结束进程、terminate
p.pids() # 返回当前正在运行的进程pid
p.pid_exists() # 进程是否存在