
Estou tentando entender se especifiquei meu banco de dados adequadamente. Abaixo está um gráfico que mostra o WriteIOPS
e CPUCreditBalance
para BurstBalance
uma instância t3.xlarge do SQL Server. Parece que estarei consumindo BurstBalance
em mais ou menos 15 horas, dada uma taxa de WriteIOPS bastante constante. No entanto, o número CPUCreditBalance
está aumentando constantemente.
O que acontecerá em +-15 horas - o banco de dados será limitado ou não? Tentei entender as métricasdefinido aquiedescrito aqui, mas não sei exatamente qual é a diferença entre os dois saldos - alguém pode esclarecer o que significam as duas métricas de saldo?
Responder1
CPUCreditBalance
e BurstBalance
são duas métricas não relacionadas.
Em instâncias do tipo T, você tem um arquivo CPUCreditBalance
. Se você tiver uso sustentado da CPU, seu saldo de crédito será esgotado e a máquina será acelerada. As instâncias do tipo T são boas apenas para cargas de trabalho intermitentes. Qualquer processo (mesmo um processo errôneo) que continue consumindo até mesmo pequenas quantidades de CPU pode prejudicar o sistema se não for dimensionado corretamente. A mesaaquimostra que um t3.xlarge pode ser executado a uma linha de base de 40% por vCPU para não ganhar nem perder créditos. Qualquer coisa que mantenha o servidor funcionando acima dessa taxa consumirá créditos até que o sistema fique sem créditos e seja acelerado até a velocidade básica. Essencialmente, seu sistema será limitado a 40% do uso da CPU.
Por outro lado, BurstBalance
é uma função do volume de armazenamento EBS que suporta uma instância EC2 ou RDS. Ao provisionar um volume de armazenamento gp2 padrão, ele fornece uma linha de base de desempenho. No entanto, você pode ganhar créditos para superar esse desempenho. Quanto maior o volume, maior será o desempenho da linha de base. Se você tiver um processo consumindo disco (leitura ou gravação), ele será executado muito mais rápido do que o desempenho da linha de base até que o saldo se esgote. Em seguida, ele será limitado ao desempenho da linha de base. Mais informações sobre issoaqui.
Em seu gráfico, estão faltando valores-chave e esses são CPUUtilization
e ReadIOPS
. O que você vê é que quando você mantém IOPS de leitura ou gravação no disco, seu equilíbrio de intermitência diminui. Quando acabar, você estará limitado ao desempenho básico do disco. Além disso, você verá que se tiver uso sustentado da CPU, seu saldo de crédito diminuirá. Quando acabar, sua CPU será limitada ao desempenho básico.
Dependendo da sua carga de trabalho, talvez seja necessário ajustar o tamanho da sua instância ou o volume para atender às suas necessidades. Ou talvez você precise mudar para um tipo de instância não expansível para obter desempenho de CPU confiável e consistente. Ou talvez seja necessário mudar para um volume de armazenamento de iops provisionado para obter desempenho de disco confiável e consistente.
Responder2
Se sua carga for constante 24 horas por dia, 7 dias por semana, você ficará sem BurstBalance (disco EBS). Há um bom artigo no blog sobre issoaqui. No entanto, se a sua carga diminuir, digamos, fora do horário comercial, o saldo de burst provavelmente será recuperado.
Se você tiver um disco GP2/GP3, sugiro aumentar o tamanho do disco, pois seu equilíbrio de burst aumentará mais rapidamente. Se for IO1/IO2 aumente o IOPS alocado.