4.2 KiB
4.2 KiB
psutil 详细功能文档
psutil(Python System and Process Utilities)是一个跨平台的 Python 库,用于检索系统运行时的信息,如CPU、内存、磁盘、网络、进程等。它支持 Linux、Windows、macOS、FreeBSD 等主流操作系统,是系统监控、性能分析和运维自动化的重要工具。
一、安装与导入
1. 安装
pip install psutil
2. 导入
import psutil
二、CPU 相关功能
1. CPU 逻辑/物理核心数
psutil.cpu_count() # 逻辑 CPU 数量
psutil.cpu_count(logical=False) # 物理 CPU 数量
2. CPU 使用率
psutil.cpu_percent(interval=1) # 整体 CPU 使用率(阻塞 1 秒)
psutil.cpu_percent(interval=None) # 非阻塞调用
psutil.cpu_times_percent(interval=1)
# 返回用户态、系统态、空闲等占比
3. 每个 CPU 核心的使用率
psutil.cpu_percent(interval=1, percpu=True)
4. CPU 时间统计
psutil.cpu_times()
# user / system / idle / iowait 等
三、内存相关功能
1. 虚拟内存(RAM)
mem = psutil.virtual_memory()
print(mem.total, mem.available, mem.percent)
主要字段说明:
| 属性 | 含义 |
|---|---|
| total | 总内存 |
| available | 可用内存 |
| used | 已使用内存 |
| free | 完全空闲内存 |
| percent | 使用百分比 |
2. 交换内存(Swap)
swap = psutil.swap_memory()
print(swap.total, swap.used, swap.free)
四、磁盘相关功能
1. 磁盘分区信息
psutil.disk_partitions()
示例返回:
sdiskpart(device='/dev/sda1', mountpoint='/', fstype='ext4')
2. 磁盘使用情况
psutil.disk_usage('/')
返回字段:total / used / free / percent
3. 磁盘 I/O 统计
psutil.disk_io_counters()
字段包括:
read_byteswrite_bytesread_countwrite_count
按磁盘:
psutil.disk_io_counters(perdisk=True)
五、网络相关功能
1. 网络 I/O 统计
psutil.net_io_counters()
字段:
bytes_sentbytes_recvpackets_sentpackets_recv
按网卡:
psutil.net_io_counters(pernic=True)
2. 网络连接
psutil.net_connections(kind='inet')
常用 kind:
'inet':IPv4 + IPv6'tcp''udp'
返回对象包含:
fd,family,type,laddr,raddr,status,pid
3. 网络接口信息
psutil.net_if_addrs()
psutil.net_if_stats()
六、进程管理(核心功能)
1. 获取进程 PID
psutil.pids()
2. 创建 Process 对象
p = psutil.Process(pid=1234)
3. 常用进程信息
p.name() # 进程名
p.exe() # 可执行文件路径
p.cmdline() # 启动命令
p.pid # PID
p.ppid() # 父 PID
p.status() # 状态
p.create_time() # 创建时间
4. CPU / 内存使用
p.cpu_percent(interval=0.1)
p.memory_info() # RSS / VMS
p.memory_percent()
5. 线程与文件
p.threads()
p.open_files()
6. 网络连接
p.net_connections()
7. 进程控制
p.suspend()
p.resume()
p.kill()
p.terminate()
七、系统信息与传感器
1. 系统基本信息
psutil.boot_time()
psutil.users()
2. 温度传感器(Linux)
psutil.sensors_temperatures()
3. 电池信息(笔记本)
psutil.sensors_battery()
八、跨平台注意事项
| 功能 | Windows | Linux | macOS |
|---|---|---|---|
| 进程 CPU affinity | ❌ | ✅ | ❌ |
| sensors_temperature | ❌ | ✅ | ⚠️ |
| 完整 net_connections | ⚠️ | ✅ | ✅ |
⚠️ 表示部分支持或需要管理员权限
九、常见应用场景
- 系统资源实时监控
- 服务器性能分析
- 进程级资源审计
- 自动化运维脚本
- 安全/异常进程检测
十、总结
psutil 提供了统一、简洁、跨平台的系统信息访问接口,是 Python 中做系统监控和运维自动化的首选库之一。无论是查看 CPU、内存、磁盘、网络,还是精细到单个进程的资源占用,psutil 都能高效胜任。