Cloud Compute: como diagnosticar e melhorar a performance
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.
1. Defina uma comparação que possa ser repetida
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.
2. Observe onde a aplicação espera
- CPU ocupada e fila de execução crescente: investigue processo que consome CPU, paralelismo e limites de execução. Depois de confirmar a causa, avalie: otimizar o trecho crítico ou avaliar mais capacidade de processamento.
- Memória sob pressão, swap ou processos encerrados: investigue crescimento do heap, cache, concorrência e limites. Depois de confirmar a causa, avalie: corrigir vazamento, reduzir pressão ou aumentar memória.
- Operações de disco lentas: investigue latência, fila, padrão de leitura/escrita e limites contratados. Depois de confirmar a causa, avalie: ajustar acesso aos dados ou dimensionar armazenamento.
- Latência aumenta entre serviços: investigue resolução DNS, perdas, retransmissões e localização das dependências. Depois de confirmar a causa, avalie: corrigir a comunicação ou reduzir chamadas e distância.
- Requisições aguardam apesar de recursos livres: investigue pool de conexões, locks, filas e serviço externo. Depois de confirmar a causa, avalie: ajustar a dependência ou o limite que restringe a aplicação.
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.