Estou me perguntando em que estágio preciso aumentar a imagem do servidor RDS MySQL para uma instância maior de CPU/RAM.
O gráfico de utilização da CPU está próximo de 0. A média de memória livre é de cerca de 150 MB. O uso médio do Swap é de 420 MB.
A latência de leitura é de 0 a 20 ms/op e aumenta aleatoriamente. A latência média de gravação é em média de 5 ms/op, mas atinge picos de 10 a 20 ms/op.
Existem algumas regras comuns aqui que devo seguir?
Obrigado!
Responder1
Não existem regras comuns
As regras de desempenho precisam ser definidas por objetivos comerciais e técnicos – e não arbitrários.
Qual problema de desempenho você está tentando resolver ou evitar?
As métricas não equivalem a desempenho e muitas vezes têm pouco a ver com objetivos comerciais ou mesmo técnicos.
Normalmente observo dois aspectos do desempenho.
- Quais métricas preciso monitorar para atender aos objetivos de desempenho?
- Quanta sobrecarga de recursos desejo manter para garantir o cumprimento desses objetivos de desempenho.
Concentrar-se apenas nas métricas de recursos do banco de dados na ausência de outros dados provavelmente não será muito útil. Essas métricas precisam de contexto – caso contrário, será apenas uma otimização prematura.
Métricas como essas são úteis para o planejamento de capacidade se você conhece suas taxas de utilização.
Então, talvez perguntas mais importantes seriam:
- Em níveis máximos de uso, meu aplicativo está funcionando dentro dos limites aceitáveis?
- No pico de uso, qual é a minha utilização de recursos?
- Com o crescimento esperado, qual será a minha utilização de recursos?
Muitas vezes encontro pessoas focadas no que chamo de ping, power e pipe (CPU/Disco/RAM). Raramente essas são as coisas importantes nas quais se concentrar.
Obter dados e definir metas para as perguntas acima o ajudará a tomar decisões de escalabilidade com justificativas técnicas e comerciais.
Responder2
Pelo que vi nas instâncias RDS, o FreeableMemory é bastante baixo e o SwapUsage é relativamente alto. Parece que sua carga de trabalho consome muita memória e melhoraria, no mínimo, com memória adicional.
Para latências mais consistentes, os IOPs provisionados são a melhor opção se você já alocou pelo menos 300 GB de armazenamento:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.html