About
psutil(python系统和流程实用程序)是一个跨平台库,用于在Python中检索有关正在运行的 进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,分析,限制进程资源和运行进程的管理。它实现了UNIX命令行工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。psutil目前支持以下平台:
- Linux的
- Windows
- macOS
- FreeBSD,OpenBSD,NetBSD
- Sun Solaris
- AIX
支持Python版本是2.6,2.7和3.4+。
Install
psutil安装也相当方便:
- windows平台直接使用pip安装即可。
- Linux平台可以选择tar包方式安装。
CPU
- 获取CPU逻辑核数。
logical
参数默认为True
,指获取逻辑核数。
- 获取CPU物理核数。
- 以百分比的形式返回表示当前CPU的利用率的浮点数。
interval
参数必须设置为大于0,因为它测试的是时间间隔内的利用率。percpu
参数为True
则所有CPU利用率的浮点列表,列表的顺序在调用之间是一致的。
- 在特定模式下,返回CPU所花费的时间百分比。
- 在特定模式下,返回CPU所花费的时间(单位为秒)。
- 将各种CPU统计信息作为命名元组返回。
- 将CPU频率作为名称包返回,包括 以Mhz表示的当前,最小和最大频率。在Linux 当前频率上报告实时值,在所有其他平台上它代表名义上的“固定”值。如果percpu是True并且系统支持每CPU频率检索(仅限Linux),则为每个CPU返回频率列表,否则返回包含单个元素的列表。如果无法确定最小值和最大值,则将它们设置为0。
Memory
- 获取内存使用情况。相关参数,单位(字节):
- total,总大小。
- available,可用内存。
- used,已使用。
- free,空闲。
- percent,使用率。
需要注意的是,已使用和可用不等于总和。
- 获取交换分区内存统计信息。相关参数,单位(字节):
- total,总大小。
- used,已使用地swap内存。
- free,空闲。
- sin,系统累计从磁盘交换的字节数。
- sout,系统累计从磁盘换出的字节数。
Disk
- 返回所有磁盘分区信息。包括设备,挂载点和文件系统类型。
- 返回指定磁盘的信息。相关参数,单位(字节):
- total,总大小。
- used,使用。
- free,空闲。
- percent,使用率。
- 获取磁盘
I/O
统计信息。相关参数:
- read_count,读取次数。
- write_count,写入次数。
- read_bytes,读取的字节数。
- write_bytes,写入的字节数。
Network
- 获取网络
I/O
信息。相关参数:
- bytes_sent:发送的字节数
- bytes_recv:接收的字节数
- packets_sent:发送的包数
- packets_recv:接收的数据包数
- errin:接收时的错误总数
- errout:发送时的错误总数
- dropin:丢弃的传入数据包总数
- dropout:丢弃的传出数据包总数(macOS和BSD总是0)
- 获取系统的套接字信息。每个命名元组都提供7个属性:
- fd:套接字文件描述符。如果连接引用当前进程,则可以将其传递给socket.fromfd 以获取可用的套接字对象。在Windows和SunOS上,它始终设置为
-1
。 - family:地址族,AF_INET,AF_INET6或AF_UNIX。
- type:地址类型,SOCK_STREAM或SOCK_DGRAM。
- laddr:作为命名元组的本地地址或 AF_UNIX套接字的情况。对于UNIX套接字,请参阅下面的注释。
(ip, port)``path
- raddr:作为命名元组的远程地址或UNIX套接字的绝对地址。当远程端点未连接时,您将获得一个空元组(AF_INET *)或(AF_UNIX)。对于UNIX套接字,请参阅下面的注释。
(ip, port)``path``""
- status:表示TCP连接的状态。返回值是psutil.CONN_ *常量之一(字符串)。对于UDP和UNIX套接字,这总是如此 psutil.CONN_NONE。
- pid:打开套接字的进程的PID,如果可以检索,否则
None
。在某些平台(例如Linux)上,此字段的可用性会根据进程权限(需要root)而更改。
- 获取网卡地址相关信息。相关参数:
- family:地址族,AF_INET或AF_INET6, 或者psutil.AF_LINK指MAC地址。
- address:主NIC地址(始终设置)。
- netmask:网络掩码地址(可能是
None
)。 - 广播:广播地址(可能是
None
)。 - ptp:代表“点对点”; 它是点对点接口(通常是VPN)上的目标地址。广播和ptp是互斥的。可能是
None
。
- 获取网卡的信息,相关参数:
- isup:指示NIC是否已启动并运行的bool。
- duplex:双工通信类型; 它可以是NIC_DUPLEX_FULL,NIC_DUPLEX_HALF或NIC_DUPLEX_UNKNOWN。
- speed:以兆位(MB)表示的NIC速度,如果无法确定(例如'localhost'),它将被设置为
0
。 - mtu:NIC的最大传输单位,以字节为单位。
其他信息
- 获取系统进程pid
- 获取系统开机时间
- 获取当前用户登录信息
- linux系统返回硬件温度。
- linux获取硬件风扇转速。
- 返回电池信息。相关参数:
- 百分比:电池剩余百分比。
- secsleft:电池电量耗尽前剩余的秒数的粗略近似值。如果连接了交流电源线,则设置为 psutil.POWER_TIME_UNLIMITED。如果无法确定它被设置为psutil.POWER_TIME_UNKNOWN。
- power_plugged:
True
如果连接了交流电源线,False
如果没有,或者None
无法确定。
About
psutil(python系统和流程实用程序)是一个跨平台库,用于在Python中检索有关正在运行的 进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它主要用于系统监视,分析,限制进程资源和运行进程的管理。它实现了UNIX命令行工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap。psutil目前支持以下平台:
- Linux的
- Windows
- macOS
- FreeBSD,OpenBSD,NetBSD
- Sun Solaris
- AIX
支持Python版本是2.6,2.7和3.4+。
Install
psutil安装也相当方便:
- windows平台直接使用pip安装即可。
- Linux平台可以选择tar包方式安装。
CPU
- 获取CPU逻辑核数。
logical
参数默认为True
,指获取逻辑核数。
- 获取CPU物理核数。
- 以百分比的形式返回表示当前CPU的利用率的浮点数。
interval
参数必须设置为大于0,因为它测试的是时间间隔内的利用率。percpu
参数为True
则所有CPU利用率的浮点列表,列表的顺序在调用之间是一致的。
- 在特定模式下,返回CPU所花费的时间百分比。
- 在特定模式下,返回CPU所花费的时间(单位为秒)。
- 将各种CPU统计信息作为命名元组返回。
- 将CPU频率作为名称包返回,包括 以Mhz表示的当前,最小和最大频率。在Linux 当前频率上报告实时值,在所有其他平台上它代表名义上的“固定”值。如果percpu是True并且系统支持每CPU频率检索(仅限Linux),则为每个CPU返回频率列表,否则返回包含单个元素的列表。如果无法确定最小值和最大值,则将它们设置为0。
Memory
- 获取内存使用情况。相关参数,单位(字节):
- total,总大小。
- available,可用内存。
- used,已使用。
- free,空闲。
- percent,使用率。
需要注意的是,已使用和可用不等于总和。
- 获取交换分区内存统计信息。相关参数,单位(字节):
- total,总大小。
- used,已使用地swap内存。
- free,空闲。
- sin,系统累计从磁盘交换的字节数。
- sout,系统累计从磁盘换出的字节数。
Disk
- 返回所有磁盘分区信息。包括设备,挂载点和文件系统类型。
- 返回指定磁盘的信息。相关参数,单位(字节):
- total,总大小。
- used,使用。
- free,空闲。
- percent,使用率。
- 获取磁盘
I/O
统计信息。相关参数:
- read_count,读取次数。
- write_count,写入次数。
- read_bytes,读取的字节数。
- write_bytes,写入的字节数。
Network
- 获取网络
I/O
信息。相关参数:
- bytes_sent:发送的字节数
- bytes_recv:接收的字节数
- packets_sent:发送的包数
- packets_recv:接收的数据包数
- errin:接收时的错误总数
- errout:发送时的错误总数
- dropin:丢弃的传入数据包总数
- dropout:丢弃的传出数据包总数(macOS和BSD总是0)
- 获取系统的套接字信息。每个命名元组都提供7个属性:
- fd:套接字文件描述符。如果连接引用当前进程,则可以将其传递给socket.fromfd 以获取可用的套接字对象。在Windows和SunOS上,它始终设置为
-1
。 - family:地址族,AF_INET,AF_INET6或AF_UNIX。
- type:地址类型,SOCK_STREAM或SOCK_DGRAM。
- laddr:作为命名元组的本地地址或 AF_UNIX套接字的情况。对于UNIX套接字,请参阅下面的注释。
(ip, port)``path
- raddr:作为命名元组的远程地址或UNIX套接字的绝对地址。当远程端点未连接时,您将获得一个空元组(AF_INET *)或(AF_UNIX)。对于UNIX套接字,请参阅下面的注释。
(ip, port)``path``""
- status:表示TCP连接的状态。返回值是psutil.CONN_ *常量之一(字符串)。对于UDP和UNIX套接字,这总是如此 psutil.CONN_NONE。
- pid:打开套接字的进程的PID,如果可以检索,否则
None
。在某些平台(例如Linux)上,此字段的可用性会根据进程权限(需要root)而更改。
- 获取网卡地址相关信息。相关参数:
- family:地址族,AF_INET或AF_INET6, 或者psutil.AF_LINK指MAC地址。
- address:主NIC地址(始终设置)。
- netmask:网络掩码地址(可能是
None
)。 - 广播:广播地址(可能是
None
)。 - ptp:代表“点对点”; 它是点对点接口(通常是VPN)上的目标地址。广播和ptp是互斥的。可能是
None
。
- 获取网卡的信息,相关参数:
- isup:指示NIC是否已启动并运行的bool。
- duplex:双工通信类型; 它可以是NIC_DUPLEX_FULL,NIC_DUPLEX_HALF或NIC_DUPLEX_UNKNOWN。
- speed:以兆位(MB)表示的NIC速度,如果无法确定(例如'localhost'),它将被设置为
0
。 - mtu:NIC的最大传输单位,以字节为单位。
其他信息
- 获取系统进程pid
- 获取系统开机时间
- 获取当前用户登录信息
- linux系统返回硬件温度。
- linux获取硬件风扇转速。
- 返回电池信息。相关参数:
- 百分比:电池剩余百分比。
- secsleft:电池电量耗尽前剩余的秒数的粗略近似值。如果连接了交流电源线,则设置为 psutil.POWER_TIME_UNLIMITED。如果无法确定它被设置为psutil.POWER_TIME_UNKNOWN。
- power_plugged:
True
如果连接了交流电源线,False
如果没有,或者None
无法确定。