O processador marca cem por cento: a pergunta antes de ler um número

Três números diferentes têm o mesmo nome: a média desde a inicialização, o total acumulado e a diferença entre duas amostras. Só o último responde "agora".

AtlasPVE ·

Este verbete responde a

  • proxmox uso de cpu alto
  • proxmox qual processo consome cpu
  • o que é load average
  • como ler a saída do top
  • proxmox cpu em 100 por cento

Você olha o painel e o processador parece carregado. Antes de fazer qualquer coisa existe uma única pergunta: que período este número descreve?

Porque três números diferentes têm o mesmo nome, e os três dizem coisas diferentes.

Três números com o mesmo nome

A média desde a inicialização. Se a máquina ficou muito ocupada por três dias dois meses atrás, aquela ocupação ainda está dentro dessa média. Ela não responde "agora".

O total acumulado. Nunca desce. Fala do passado, não do hoje.

A diferença entre duas amostras. Tiram-se duas medidas e lê-se a mudança entre elas. Só esta responde "agora".

A armadilha clássica

A ferramenta padrão que lista processos mostra na primeira tela a média desde a inicialização. Se você olha aquela primeira tela e age, interveio no passado e não no hoje.

O jeito certo é tirar pelo menos duas amostras e ler a segunda. A ferramenta em si não erra; o jeito de lê-la é que erra.

O mesmo erro toma a mesma forma em todo lugar

Essa forma já apareceu duas vezes nesta wiki.

No desgaste de disco dissemos não a porcentagem, a inclinação: oitenta e cinco por cento restante significa dez anos num disco e oito meses em outro.

Nos pacotes perdidos dissemos não o total, a taxa: uma máquina que teve uma hora ruim no ano passado é mostrada como culpada para sempre pelo contador.

No processador vale não a média, a diferença. Três lugares diferentes, um único erro de leitura.

Dá para escrever como regra geral: um número sem janela de tempo declarada não é uma medição. Antes de agir sobre um número, pergunte que janela ele cobre.

Quando o processador está mesmo alto

Aí é preciso uma segunda distinção: é uma máquina que está ocupada, ou é o servidor que não dá conta?

Uma máquina virtual usar toda a fatia que recebeu é normal. Se você deu dois núcleos a ela e ela encheu esses dois núcleos, o sistema está funcionando exatamente como foi projetado.

O problema é o momento em que o servidor satura: os convidados param de conseguir o que pedem e todos ficam lentos juntos.

E tem uma confusão frequente: carga não é uso de processador. Carga conta as coisas que estão esperando, e parte delas espera não o processador mas o disco. É possível a carga estar alta com o processador parado, e isso te diz para olhar em outro lugar.

O que o Atlas faz

Quando o Atlas lista os processos do servidor que mais consomem processador, ele tira de propósito duas amostras e lê a segunda.

O motivo é exatamente a armadilha acima: a primeira amostra carrega a média desde a inicialização e mostrá-la seria enganoso. A diferença não é um detalhe pequeno; uma lista ordenada pela primeira amostra apresenta como culpado de hoje um processo que esteve ocupado meses atrás.

Outro detalhe pequeno mas honesto: o resultado dessa medição é guardado por pouco tempo e os pedidos que chegam juntos são amarrados a uma única medição. O motivo: enquanto o cartão está aberto ele se atualiza a cada poucos segundos, e começar uma medição nova a cada atualização carrega o servidor à toa.

É o mesmo princípio do artigo sobre calor: o que observa não pode ser o que custa.

Fontes

A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.

Verbetes relacionados

Como isso aparece dentro do Atlas?

Ir para a página do produto