Aumentar uma máquina virtual pode aliviar um gargalo, mas não explica sua causa. Para melhorar a performance de uma aplicação, comece pelo que o usuário percebe e relacione esse comportamento ao consumo dos recursos.
Este roteiro serve para equipes que operam aplicações em máquinas virtuais, incluindo o Cloud Compute da Huge Networks. Os exemplos são práticas de diagnóstico; não representam um benchmark ou uma garantia de desempenho de um plano.
Escolha uma operação importante, como carregar uma página ou concluir uma consulta. Registre a latência mediana, o percentil 95, a taxa de erros e o volume de requisições durante uma janela representativa. Anote também a versão da aplicação, o tamanho da instância e o conjunto de dados.
Use a mesma operação e condições equivalentes ao comparar uma mudança. Um resultado obtido com cache aquecido não deve ser comparado a outro com cache vazio sem registrar essa diferença.
Por exemplo: se o p95 de uma API aumenta quando cresce a fila de consultas, investigar o banco pode ser mais útil do que adicionar CPU ao servidor web. Essa é uma hipótese a testar, não uma conclusão extraída somente da latência.
Em Linux, o Pressure Stall Information do kernel mostra tempo de espera relacionado à disputa por CPU, memória e I/O, quando disponível na distribuição. Ele complementa os percentuais de uso: um recurso pode causar espera que a média de utilização esconde.
Os comandos abaixo apenas consultam o estado da máquina. A disponibilidade das ferramentas depende da distribuição; iostat costuma fazer parte do pacote sysstat.
uptime
free -h
vmstat 1 5
iostat -xz 1 5
Observe os dados no mesmo intervalo em que a aplicação fica lenta. Não tire uma conclusão com uma única amostra e não some métricas com unidades diferentes. Correlacione com os logs da aplicação, consultas ao banco e mudanças recentes.
Se precisar gerar carga, use um ambiente controlado e limites compatíveis com o objetivo do teste. Registre concorrência, duração e volume de dados para tornar o resultado reproduzível.
Uma aplicação equilibrada pode usar uma configuração general purpose. Um banco limitado por memória pode precisar de mais RAM; processamento paralelo pode exigir mais CPU. A escolha depende da medição e dos recursos disponíveis no plano.
Antes de crescer, verifique consultas sem índice, chamadas repetidas, cache inadequado e processamento feito de forma síncrona sem necessidade. Corrigir esses pontos pode melhorar a resposta sem aumentar todas as máquinas.
Para avaliar isolamento e capacidade dedicada, compare os requisitos da carga com servidores Bare Metal. Essa comparação deve considerar operação, elasticidade e utilização esperada, além do preço.
Escala vertical aumenta recursos de uma instância; escala horizontal distribui trabalho entre instâncias. Aplicações com sessão ou arquivos locais podem precisar de ajustes antes de distribuir requisições.
Um load balancer ajuda a distribuir o acesso entre servidores conforme a configuração do serviço. Ele não elimina um banco compartilhado saturado ou uma dependência externa lenta.
Em Kubernetes, o Horizontal Pod Autoscaler ajusta réplicas a partir de métricas configuradas. A métrica e seus pré-requisitos precisam estar disponíveis; usar HPA não equivale a habilitar automaticamente a expansão de máquinas virtuais.
Depois da mudança, repita a observação com a mesma carga de referência. Compare p95, erros, filas e utilização, incluindo períodos de pico. Registre o que mudou e como reverter a configuração se o comportamento piorar.
Uma melhoria está demonstrada quando a operação importante fica mais estável ou rápida nas condições medidas. Aumentar recursos sem essa comparação apenas muda o custo e a configuração.
Para dimensionar uma implantação, consulte os planos de Cloud Compute e leve à equipe as métricas da carga, as dependências e os requisitos de disponibilidade.