Como Obter Informações do Sistema (Uso de CPU, RAM e Disco) em Python

Como Obter Informações do Sistema (Uso de CPU, RAM e Disco) em Python

A biblioteca psutil (python system and process utilities) permite monitorar o consumo de recursos de hardware do computador e processos em execução. Com poucas linhas de código, é possível coletar métricas detalhadas sobre o uso de CPU, memória RAM e espaço em disco em tempo real. Essa solução é ideal para a criação de rotinas de monitoramento, dashboards internos, alertas de infraestrutura ou scripts de diagnóstico automatizado.

Python
import psutil

def monitorar_recursos_sistema():
    # -------------------------------------------------------------------------
    # 1. Métricas da CPU
    # -------------------------------------------------------------------------
    # Quantidade de núcleos físicos e lógicos
    nucleos_fisicos = psutil.cpu_count(logical=False)
    nucleos_logicos = psutil.cpu_count(logical=True)
    
    # Porcentagem total de uso da CPU (interval=1 aguarda 1 segundo para medir a taxa)
    uso_cpu_pct = psutil.cpu_percent(interval=1)

    # -------------------------------------------------------------------------
    # 2. Métricas de Memória RAM
    # -------------------------------------------------------------------------
    memoria = psutil.virtual_memory()
    # Converte bytes para Gigabytes (GB)
    total_ram_gb = memoria.total / (1024 ** 3)
    usada_ram_gb = memoria.used / (1024 ** 3)
    uso_ram_pct = memoria.percent

    # -------------------------------------------------------------------------
    # 3. Métricas de Armazenamento (Disco Principal)
    # -------------------------------------------------------------------------
    # No Windows utilize 'C:\\', no Linux/macOS utilize '/'
    disco = psutil.disk_usage('/')
    total_disco_gb = disco.total / (1024 ** 3)
    livre_disco_gb = disco.free / (1024 ** 3)
    uso_disco_pct = disco.percent

    # -------------------------------------------------------------------------
    # Exibição do Relatório no Console
    # -------------------------------------------------------------------------
    print("=== RELATÓRIO DO SISTEMA ===")
    print(f"CPU: {uso_cpu_pct}% de uso | Núcleos: {nucleos_fisicos} físicos / {nucleos_logicos} lógicos")
    print(f"RAM: {usada_ram_gb:.2f} GB de {total_ram_gb:.2f} GB usados ({uso_ram_pct}%)")
    print(f"Disco: {livre_disco_gb:.2f} GB livres de {total_disco_gb:.2f} GB total ({uso_disco_pct}% usado)")

# Exemplo prático de execução
if __name__ == "__main__":
    monitorar_recursos_sistema()
  • Instalação do Pacote: O módulo não é nativo do Python e deve ser instalado via terminal executando pip install psutil.

  • Uso do Parâmetro interval em cpu_percent(): Definir interval=1 (ou outro valor em segundos) é essencial para medir a variação do uso da CPU ao longo desse tempo. Sem o parâmetro, a função retorna 0.0 ou uma métrica instantânea imprecisa desde a inicialização do módulo.

  • Conversão de Bytes para Gigabytes: As funções de memória e disco retornam os valores brutos em bytes. A divisão por (1024 ** 3) ou 1024**3 converte a medição para Gigabytes (GB).

  • Multiplataforma Nativa: O psutil abstrai chamadas de sistema complexas e funciona identicamente em Windows, Linux e macOS, sendo ideal para scripts de automação cross-platform.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server