Por que uma VM está lenta: processador, disco ou sobrealocação
A lentidão tem três origens comuns e cada uma aparece em outro lugar. Adicionar núcleos antes de achar a certa costuma piorar.
AtlasPVE ·
Este verbete responde a
- proxmox vm lenta
- proxmox sobrealocação de vcpu
- qual vm está consumindo a cpu
- o que é io delay no proxmox
- quantos núcleos dar a uma vm
Quando uma máquina virtual fica lenta, o primeiro reflexo é dar mais núcleos a ela. Isso quase nunca ajuda e às vezes piora. Antes é preciso separar de onde vem a lentidão.
Sobrealocação: quando o total de vCPU passa dos núcleos
As vCPU distribuídas às máquinas de um servidor podem passar o número de threads físicas. Isso é normal e em geral inofensivo, porque as máquinas não rodam todas ao mesmo tempo. Mas se carregarem juntas, elas entram na fila. Visto de dentro, nesse momento o processador parece ocioso, enquanto a máquina espera a vez. Adicionar núcleos aqui alonga a fila, não a encurta.
Gargalo em um único núcleo
Alguns trabalhos caem em um núcleo e ficam presos ali. Numa máquina de oito núcleos o uso total pode parecer baixo enquanto um único núcleo fica no topo. Adicionar núcleos não muda nada; a resposta é dividir o trabalho ou uma configuração com desempenho por núcleo mais alto.
A espera do disco
Se a curva do processador está calma e a máquina continua lenta, o lugar de olhar é o disco. O servidor mede à parte o tempo que passa esperando dados. Quando esse valor sobe, o problema não é calcular e sim esperar; tipo de disco, ajuste de cache e as outras máquinas no mesmo disco entram na conta.
A ordem para olhar
Primeiro comparar o total de vCPU com as threads físicas, depois olhar a carga por núcleo, e só então o tempo de espera do disco. As três medidas ficam do lado do host; de dentro da máquina esses três estados não se distinguem.
Fontes
A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.