Ferramenta de Monitoramento de CPU em Tempo Real com mpstat no Linux

O mpstat, abreviação de Multiprocessor Statistics, é uma ferramenta essencial para monitoramento de sistema em tempo real no ambiente Linux. Este utilitário exibe estatísticas detalhadas sobre o processador, obtidas diretamente do arquivo /proc/stat. Em sistemas com múltiplos núcleos ou processadores, o mpstat oferece a capacidade única de analisar não apenas o desempenho médio de todos os processadores, mas também o comportamento individual de cada núcleo, diferenciando-se de ferramentas como vmstat que fornecem apenas uma visão geral do sistema.

Sintaxe e Parâmetros

A estrutura básica do comando mpstat permite diversas configurações de acordo com as necessidades de monitoramento:

mpstat [-P {|TODOS}] [intervalo [vezes]]

Parâmetros:

  • -P {|TODOS} - Especifica qual processador monitorar, onde o valor numérico varia de 0 até (número total de núcleos - 1). O uso de TODOS exibe informações agregadas de todos os núcleos.
  • intervalo - Define o tempo em segundos entre cada coleta de dados.
  • vezes - Indica quantas amostras serão coletadas, devendo ser usado em conjunto com o parâmetro de intervalo.

Quando nenhum parâmetro é fornecido, o mpstat exibe as médias estatísticas desde a inicialização do sistema. Com o intervalo especificado, a primeira linha apresenta médias desde a inicialização, enquanto as linhas subsequentes mostram médias para cada intervalo de tempo definido.

Exemplos Práticos

Monitoramento Geral do Sistema

Para vsiualizar o estado geral do processador com atualizações a cada 2 segundos:

$ mpstat 2

Horário     CPU  %usuário  %prioridade  %sistema  %e_espera  %irq  %soft  %roubo  %visitante  %ocioso
20:15:01   todos    0.05      0.00        0.01      0.02      0.00  0.00    0.00     0.00      99.92
20:15:03   todos    0.03      0.00        0.02      0.04      0.00  0.00    0.00     0.00      99.91
20:15:05   todos    0.07      0.01        0.03      0.01      0.00  0.00    0.00     0.00      99.88

Análise Individual dos Núcleos

Para examinar o desempenho específico de cada núcleo do processador:

$ mpstat -P TODOS 3

Horário     CPU    %usuário   %prioridade   %sistema  %e_espera   %irq   %soft   %roubo   %visitante   %ocioso
20:17:22    todos    0.12       0.00         0.05       0.03       0.00   0.00     0.00      0.00        99.80
20:17:22      0      0.00       0.00         0.00       0.00       0.00   0.00     0.00      0.00       100.00
20:17:22      1      0.00       0.00         0.00       0.00       0.00   0.00     0.00      0.00       100.00
20:17:22      2      0.25       0.00         0.10       0.06       0.00   0.00     0.00      0.00        99.59
20:17:22      3      0.00       0.00         0.00       0.00       0.00   0.00     0.00      0.00       100.00
20:17:22      4      0.00       0.00         0.00       0.00       0.00   0.00     0.00      0.00       100.00

Monitoramento com Controle de Amostragem

Para realizar 5 amostras com intervalos de 4 segundos:

$ mpstat 4 5

Horário     CPU    %usuário   %prioridade   %sistema  %e_espera   %irq   %soft   %roubo   %visitante   %ocioso
20:20:15    todos    0.08       0.01         0.04       0.02       0.01   0.00     0.00      0.00        99.84
20:20:19    todos    0.10       0.02         0.05       0.03       0.00   0.01     0.00      0.00        99.79
20:20:23    todos    0.07       0.01         0.03       0.01       0.00   0.00     0.00      0.00        99.88
20:20:27    todos    0.12       0.00         0.06       0.04       0.00   0.00     0.00      0.00        99.78
20:20:31    todos    0.09       0.02         0.04       0.02       0.01   0.00     0.00      0.00        99.82

Descrição dos Campos de Saída

A saída do mpstat fornece diversas métricas importantes sobre o uso do processador:

  • %usuário - Porcentagem de tempo gasto em modo de usuário (excluindo processos com baixa prioridade).
  • %prioridade - Porcentagem de tempo gasto por processos com baixa prioridade (nice).
  • %sistema - Porcentagem de tempo gasto em modo kernel.
  • %e_espera - Porcentagem de tempo gasto esperando por operações de E/S de disco.
  • %irq - Porcentagem de tempo gasto em interrupções de hardware.
  • %soft - Porcentagem de tempo gasto em interrupções de software.
  • %roubo - Porcentagem de tempo roubado por máquinas virtuais (hypervisors).
  • %visitante - Porcentagem de tempo gasto por processos de virtualização.
  • %ocioso - Porcentagem de tempo em que o processador esteve ocioso (excluindo espera por E/S).

Fórmulas de Cálculo

As estatísticas apresentadas são calculadas com base nas diferenças entre as amostras coletadas:

total_atual = usuário + sistema + prioridade + ocioso + e_espera + irq + softirq
total_anterior = anterior_usuário + anterior_sistema + anterior_prioridade + anterior_ocioso + anterior_e_espera + anterior_irq + anterior_softirq
usuário = usuário_atual - usuário_anterior
total = total_atual - total_anterior

Onde:
- __atual representa o valor da amostra atual
- _anterior representa o valor da amostra anterior ao intervalo
Todos os valores são expressos com duas casas decimais.

O mpstat é uma ferramenta indispensável para administradores de sistemas que precisam analisar o comportamento do processador em tempo real, identificar gargalos de desempenho e otimizar a utilizização de recursos em ambientes Linux.

Tags: monitoramento de cpu Linux mpstat análise de desempenho estatísticas do processador

Publicado em 6-20 05:49