如何在Python中获取系统CPU和内存占用比

在日常开发和系统监控中,了解系统的CPU和内存使用情况是十分重要的。通过Python,我们可以轻松地获取这些信息,并在不同场景下进行应用,比如性能监控、资源分配等。本文将介绍如何获取系统的CPU和内存占用比,并附带详尽的代码示例。

获取系统信息的库

在Python中,有多个库可以用来获取系统信息,其中最常用的有 psutil 库。psutil 是一个跨平台的库,提供了多种监控系统和进程的功能。我们可以通过 pip 安装该库:

pip install psutil

获取CPU占用比

获取CPU使用率非常简单,可以使用 psutil.cpu_percent() 函数。以下示例代码每隔一秒获取一次CPU的占用比并打印出来:

import psutil
import time

def get_cpu_usage(interval=1):
    print(f"{'Time':<8} {'CPU Usage (%)':<15}")
    while True:
        time.sleep(interval)
        cpu_usage = psutil.cpu_percent(interval=0)  # 立即返回CPU占用率
        print(f"{time.strftime('%H:%M:%S'):<8} {cpu_usage:<15}")

get_cpu_usage()

在这个代码中,我们使用了一个无限循环,通过 time.sleep(interval) 每隔一段时间(默认为1秒)获取CPU的使用情况并打印。

获取内存占用比

获取内存使用情况同样简单。可以使用 psutil.virtual_memory() 函数来获取系统的虚拟内存信息。下面是获取内存占用比的示例代码:

import psutil

def get_memory_usage():
    mem = psutil.virtual_memory()
    total_memory = mem.total / (1024 ** 3)  # 转换为GB
    used_memory = mem.used / (1024 ** 3)    # 转换为GB
    percent_used = mem.percent
    print(f"Total Memory: {total_memory:.2f} GB")
    print(f"Used Memory: {used_memory:.2f} GB ({percent_used}%)")

get_memory_usage()

这个函数会输出系统的总内存、已用内存以及内存使用百分比。

将CPU和内存信息结合

为了实现一个更加完整的监控系统,我们可以将CPU和内存使用情况结合在一起。以下是一个综合示例:

import psutil
import time

def monitor_system(interval=1):
    print(f"{'Time':<8} {'CPU Usage (%)':<15} {'Memory Usage (%)':<15}")
    while True:
        time.sleep(interval)
        cpu_usage = psutil.cpu_percent(interval=0)
        memory_usage = psutil.virtual_memory().percent
        print(f"{time.strftime('%H:%M:%S'):<8} {cpu_usage:<15} {memory_usage:<15}")

monitor_system()

上面的代码将同时监控CPU和内存使用情况,并定时输出。

小结

通过上述示例,我们了解到如何使用Python获取系统的CPU和内存占用比。监控系统性能是确保系统稳定和高效运行的重要手段,而 psutil 库为我们提供了方便的接口来实现这一目的。你可以将这些代码放在服务器上进行实时监控,或将其集成到你的应用程序中。

为了让过程更为清晰,以下是一个序列图,展示了获取CPU和内存使用情况的流程:

sequenceDiagram
    participant A as User
    participant B as Monitor Script
    
    A->>B: Start monitoring
    B->>B: Get CPU usage
    B->>B: Get memory usage
    B-->>A: Display usage
    loop every second
        B->>B: Get CPU usage
        B->>B: Get memory usage
        B-->>A: Display usage
    end

希望这篇文章能帮助你理解如何用Python获取系统的CPU和内存占用比,以及如何在实际应用中运用这些知识。