psutil
模块是一个 Python 库,用于获取系统和进程信息。它提供了与系统资源使用情况、系统进程、CPU、内存、磁盘和网络等相关的功能。这个模块非常适合用于性能监控、系统管理、分析和调试等任务。
功能分类总结表格
功能分类 | 函数/方法/属性 | 描述 | 示例 |
---|---|---|---|
系统信息 | psutil.cpu_count(logical=True) | 获取 CPU 核心数,logical 指定是否包括逻辑 CPU。 | psutil.cpu_count(logical=True) |
psutil.cpu_percent(interval=None) | 返回当前 CPU 的使用率百分比。interval 指定测量间隔。 | psutil.cpu_percent(interval=1) | |
psutil.virtual_memory() | 获取系统虚拟内存的使用情况 | psutil.virtual_memory() | |
psutil.swap_memory() | 获取系统交换内存的使用情况 | psutil.swap_memory() | |
psutil.disk_partitions() | 获取磁盘分区信息 | psutil.disk_partitions() | |
psutil.disk_usage(path) | 获取指定路径的磁盘使用情况 | psutil.disk_usage('/') | |
psutil.disk_io_counters() | 获取系统的磁盘 I/O 计数器 | psutil.disk_io_counters() | |
psutil.net_io_counters() | 获取系统的网络 I/O 计数器 | psutil.net_io_counters() | |
psutil.boot_time() | 获取系统启动时间 | psutil.boot_time() | |
进程管理 | psutil.pid_exists(pid) | 检查是否存在具有给定 PID 的进程 | psutil.pid_exists(1234) |
psutil.pids() | 返回系统中所有进程的 PID 列表 | psutil.pids() | |
psutil.process_iter() | 迭代当前运行的所有进程的 psutil.Process 对象 | for proc in psutil.process_iter(): print(proc) | |
psutil.process_iter(['pid1', 'pid2']) | 迭代指定 PID 的 psutil.Process 对象列表 | for proc in psutil.process_iter([1234, 5678]): print(proc) | |
进程信息 | psutil.Process(pid) | 创建一个 Process 对象,表示具有给定 PID 的进程 | proc = psutil.Process(1234) |
psutil.Process.name() | 返回进程的名称 | proc.name() | |
psutil.Process.pid | 获取进程 ID | proc.pid | |
psutil.Process.ppid() | 获取父进程 ID | proc.ppid() | |
psutil.Process.status() | 获取进程状态 | proc.status() | |
psutil.Process.cpu_times() | 获取进程的 CPU 时间信息 | proc.cpu_times() | |
psutil.Process.memory_info() | 获取进程的内存使用情况 | proc.memory_info() | |
psutil.Process.memory_full_info() | 获取进程的详细内存使用情况 | proc.memory_full_info() | |
psutil.Process.create_time() | 获取进程的创建时间 | proc.create_time() | |
psutil.Process.cmdline() | 获取启动进程的命令行参数 | proc.cmdline() | |
psutil.Process.exe() | 获取启动进程的可执行文件路径 | proc.exe() | |
psutil.Process.cwd() | 获取进程的当前工作目录 | proc.cwd() | |
psutil.Process.num_threads() | 获取进程的线程数 | proc.num_threads() | |
psutil.Process.threads() | 获取进程的所有线程信息 | proc.threads() | |
psutil.Process.nice() | 获取或设置进程的“nice”值,即进程优先级 | proc.nice() | |
psutil.Process.ionice() | 获取或设置进程的 I/O 优先级 | proc.ionice() | |
psutil.Process.terminate() | 结束进程 | proc.terminate() | |
psutil.Process.kill() | 强制杀死进程 | proc.kill() | |
psutil.Process.wait(timeout=None) | 等待进程结束,timeout 指定超时时间 | proc.wait(timeout=10) | |
进程限制 | psutil.Process.set_cpu_affinity(mask) | 设置进程的 CPU 亲和性,mask 是 CPU 位掩码 | proc.set_cpu_affinity([0, 1]) |
psutil.Process.cpu_affinity() | 获取进程的 CPU 亲和性 | proc.cpu_affinity() | |
psutil.Process.set_nice(value) | 设置进程的“nice”值 | proc.set_nice(10) | |
psutil.Process.set_ionice(value) | 设置进程的 I/O 优先级 | proc.set_ionice(2) | |
系统限制 | psutil.cpu_affinity() | 设置系统级别的 CPU 亲和性 | psutil.cpu_affinity([0, 1]) |
psutil.disk_io_counters() | 获取系统的磁盘 I/O 统计信息 | psutil.disk_io_counters() | |
psutil.users() | 获取当前登录到系统的所有用户的信息 | psutil.users() |
使用示例
import psutil
# 系统信息示例
print("CPU 核心数(逻辑):", psutil.cpu_count(logical=True))
print("CPU 使用率:", psutil.cpu_percent(interval=1))
print("虚拟内存信息:", psutil.virtual_memory())
print("交换内存信息:", psutil.swap_memory())
print("磁盘分区信息:", psutil.disk_partitions())
print("磁盘使用情况:", psutil.disk_usage('/'))
print("网络 I/O 计数器:", psutil.net_io_counters())
print("系统启动时间:", psutil.boot_time())
# 进程管理示例
pid = 1234
if psutil.pid_exists(pid):
proc = psutil.Process(pid)
print("进程名称:", proc.name())
print("进程路径:", proc.exe())
print("进程工作目录:", proc.cwd())
print("进程命令行参数:", proc.cmdline())
print("进程状态:", proc.status())
print("进程 CPU 时间信息:", proc.cpu_times())
print("进程内存信息:", proc.memory_info())
print("进程线程数:", proc.num_threads())
# 进程限制示例
proc.set_cpu_affinity([0, 1])
print("进程 CPU 亲和性:", proc.cpu_affinity())
proc.set_nice(10)
print("进程 nice 值:", proc.nice())
proc.set_ionice(2)
print("进程 I/O 优先级:", proc.ionice())
# 系统限制示例
print("系统磁盘 I/O 统计信息:", psutil.disk_io_counters())
print("系统当前用户信息:", psutil.users())