简介自动化运维的psutil库

psutil是Python中常用的一个运维第三方库,用于检索有关系统进程和系统利用率(CPU,内存,磁盘,网络等)的信息。 它提供了一系列功能强大的API,方便在Python程序中监控和管理系统资源。

以下是psutil库的一些常用功能和方法:

psutil.cpu_percent([interval=None, percpu=False]): # 返回当前CPU的性能百分比。可以选择是否按逻辑CPU核心数分别返回性能百分比。
psutil.virtual_memory(): # 返回系统的虚拟内存使用情况,包括总内存、可用内存、已使用内存等。
psutil.disk_usage(path): # 返回指定路径的磁盘使用情况,包括磁盘总大小、已使用大小、可用大小等。
psutil.net_io_counters(pernic=False): # 返回系统网络的I/O统计信息,包括总发送的字节数、总接收的字节数等。
psutil.pids(): # 返回当前运行的所有进程的PID列表。
psutil.Process(pid=None): # 创建一个Process对象,可用于获取指定PID的进程的相关信息。
psutil.Process.cpu_percent(interval=None): # 返回指定进程的CPU使用率。
psutil.Process.memory_info(): # 返回指定进程的内存使用情况,包括物理内存、虚拟内存等。

可以使用psutil库来获取Linux系统的各种系统信息,如CPU使用率、内存使用情况、硬盘空间等。

以下是一个使用psutil库监控Linux系统的示例:

import psutil

def monitor_system():
    # 获取CPU使用率
    cpu_usage = psutil.cpu_percent()
    print("CPU使用率:{}%".format(cpu_usage))

    # 获取内存使用情况
    memory = psutil.virtual_memory()
    memory_usage = memory.used / (1024 ** 3)  # 1024 ** 3 表示1024的3次方,转换为GB
    print("内存使用情况:{:.2f}GB / {:.2f}GB".format(memory_usage, memory.total / (1024 ** 3)))

    # 获取硬盘空间
    disk = psutil.disk_usage("/")
    disk_usage = disk.used / (1024 ** 3)  # 1024 ** 3 表示1024的3次方,转换为GB
    print("硬盘空间使用情况:{:.2f}GB / {:.2f}GB".format(disk_usage, disk.total / (1024 ** 3)))

if __name__ == "__main__":
    monitor_system()

上述代码中,我们使用了psutil库来获取CPU使用率、内存使用情况和硬盘空间的信息。我们定义了一个monitor_system函数,通过调用psutil库的相关函数来获取系统信息,并输出到控制台。

运行结果与下图类似:

psutil运行结果