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.