Aprenda Python: Monitorando CPU e Memória do Servidor com Psutil

POR CÓDIGO DA HORA • 13 MARÇO 2026

Por que Monitorar o Hardware Programaticamente?

Em ambientes de produção, saber exatamente quanto de recurso sua aplicação está consumindo é vital para evitar quedas e lentidões. Embora existam ferramentas complexas de monitoramento, criar seu próprio script em Python oferece flexibilidade para gerar alertas personalizados, logs específicos ou até mesmo interfaces de controle simplificadas.

Neste tutorial, utilizaremos a biblioteca psutil (process and system utilities), que é o padrão da indústria para recuperar informações sobre processos em execução e utilização do sistema em Python.

Instalação da Biblioteca

Como o psutil acessa informações de baixo nível do sistema operacional, ele precisa ser instalado no seu ambiente virtual:

pip install psutil

🛠️ Criando o Monitor de Recursos Profissional

O script abaixo não apenas exibe os números brutos, mas os formata de maneira legível, mostrando a porcentagem de uso e o espaço disponível no disco.

import psutil
import os
import time

def monitorar_sistema():
    # 1. Uso de CPU (calculado em um intervalo de 1 segundo)
    uso_cpu = psutil.cpu_percent(interval=1)
    
    # 2. Informações de Memória RAM
    memoria = psutil.virtual_memory()
    total_gb = memoria.total / (1024**3)
    usada_percent = memoria.percent
    
    # 3. Uso de Disco (Partição principal)
    disco = psutil.disk_usage('/')
    disco_livre_gb = disco.free / (1024**3)

    print(f"\\n--- Relatório de Recursos [{time.strftime('%H:%M:%S')}] ---")
    print(f"💻 Uso de CPU: {uso_cpu}%")
    print(f"🧠 Memória RAM: {usada_percent}% (Total: {total_gb:.2f} GB)")
    print(f"💽 Disco Livre: {disco_livre_gb:.2f} GB")

    # Alerta visual de sobrecarga
    if uso_cpu > 80 or usada_percent > 90:
        print("⚠️ ALERTA: Alto consumo de recursos detectado!")

if __name__ == "__main__":
    try:
        while True:
            monitorar_sistema()
            time.sleep(5) # Atualiza a cada 5 segundos
    except KeyboardInterrupt:
        print("\\nMonitoramento encerrado.")

Entendendo as Unidades de Medida

A biblioteca psutil costuma retornar valores em bytes. Para tornar a informação útil para humanos, realizamos a conversão para Gigabytes (GB) dividindo o valor por 1024 ao cubo (1024**3). Dominar essas conversões é essencial para criar relatórios técnicos precisos.

💼 Aplicação no Mercado de TI

Scripts de monitoramento como este são usados para:

  • Autoscaling: Decidir quando ligar novos servidores baseando-se na carga de CPU.
  • Prevenção de Desastres: Avisar o administrador via Telegram (usando o código do Artigo 11) quando o disco estiver quase cheio.
  • Auditoria de Performance: Identificar quais processos estão "sequestrando" a memória do servidor durante a madrugada.

Este conhecimento coloca você um passo à frente na jornada para se tornar um desenvolvedor focado em estabilidade e escalabilidade de sistemas.