Explore as práticas recomendadas de dimensionamento automático

Concluído

Se você não estiver seguindo as boas práticas ao criar configurações de dimensionamento automático, poderá criar condições que levem a resultados indesejáveis. Nesta unidade, você aprenderá como evitar a criação de regras que entrem em conflito entre si.

Conceitos de dimensionamento automático

  • Uma configuração de dimensionamento automático dimensiona instâncias horizontalmente, o que é eliminado aumentando as instâncias e diminuindo o número de instâncias. Uma configuração de dimensionamento automático tem um valor máximo, mínimo e padrão de instâncias.

  • Um trabalho de dimensionamento automático sempre lê a métrica associada para dimensionar, verificando se ela ultrapassou o limite configurado para expansão ou expansão.

  • Todos os limites são calculados em um nível de instância. Por exemplo, "scale-out por uma instância quando a CPU média é 80% quando a contagem de instâncias é 2", significa expandir quando a CPU > média em todas as instâncias é maior que 80%.

  • Todos os sucessos e falhas de dimensionamento automático são registrados no Registro de atividades. Em seguida, você pode configurar um alerta de registro de atividades para que possa ser notificado por e-mail, SMS ou webhooks sempre que houver atividade.

Práticas recomendadas de dimensionamento automático

Use as seguintes práticas recomendadas ao criar suas regras de dimensionamento automático.

Verificar se os valores máximo e mínimo são diferentes e têm uma margem adequada entre si

Se você tiver uma configuração que tenha mínimo=dois, máximo=dois e a contagem de instâncias atual for dois, nenhuma ação de escala poderá ocorrer. Mantenha uma margem adequada entre as contagens de instâncias máxima e mínima, que são inclusivas. O dimensionamento automático dimensiona sempre entre estes limites.

Escolher a estatística adequada para a métrica de diagnóstico

Para métricas de diagnóstico, você pode escolher entre Média, Mínimo, Máximo e Total como uma métrica pela qual dimensionar. A estatística mais comum é a Média.

Escolher cuidadosamente os limiares para todos os tipos de métricas

Recomendamos a escolha cuidadosa de diferentes limites para expansão e expansão com base em situações práticas.

Não recomendamos configurações de dimensionamento automático como os exemplos a seguir com os mesmos valores de limite ou semelhantes para fora e em condições:

  • Aumente as instâncias em uma contagem quando Thread Count >= 600
  • Diminuir instâncias em uma contagem quando Contagem de threads <= 600

Vejamos um exemplo do que pode levar a um comportamento que pode parecer confuso. Considere a sequência a seguir.

  1. Suponha que há duas instâncias para começar e, em seguida, o número médio de threads por instância cresce para 625.
  2. O dimensionamento automático é dimensionado adicionando uma terceira instância.
  3. Em seguida, suponha que a contagem média de threads na instância caia para 575.
  4. Antes de aumentar o dimensionamento, o dimensionamento automático tenta estimar qual será o estado final se ele for dimensionado. Por exemplo, 575 x 3 (contagem de instâncias atual) = 1.725 / 2 (número final de instâncias quando dimensionadas) = 862,5 threads. Isso significa que o dimensionamento automático teria que ser dimensionado imediatamente novamente, mesmo depois de dimensionado, se a contagem média de threads permanecer a mesma ou até mesmo cair apenas uma pequena quantidade. No entanto, se ele escalasse novamente, todo o processo se repetiria, levando a um loop infinito.
  5. Para evitar essa situação (chamada de "batimento"), o dimensionamento automático não é dimensionado. Em vez disso, ele ignora e reavalia a condição novamente na próxima vez que o trabalho do serviço for executado. Isso pode confundir muitas pessoas porque a escala automática não parece funcionar quando a contagem média de threads é de 575.

A estimativa durante um scale-in destina-se a evitar situações de "batimento", em que as ações de scale-in e scale-out vão e voltam continuamente. Tenha esse comportamento em mente ao escolher os mesmos limites para expansão e entrada.

Recomendamos a escolha de uma margem adequada entre a expansão e os limiares. Como exemplo, considere a seguinte melhor combinação de regras.

  • Aumente as instâncias em 1 contagem quando CPU% >= 80
  • Diminuir instâncias em 1 contagem quando CPU% <= 60

Neste caso

  1. Suponha que há 2 instâncias para começar.
  2. Se a média de CPU% entre instâncias for de 80, o dimensionamento automático será dimensionado adicionando uma terceira instância.
  3. Agora suponha que com o tempo a CPU% cai para 60.
  4. A regra de dimensionamento automático estima o estado final se for dimensionado. Por exemplo, 60 x 3 (contagem de instâncias atual) = 180 / 2 (número final de instâncias quando dimensionadas) = 90. Portanto, o dimensionamento automático não aumenta a escala porque teria que ser dimensionado novamente imediatamente. Em vez disso, ele ignora a escala.
  5. Da próxima vez que o dimensionamento automático for verificado, a CPU continuará a cair para 50. Ele estima novamente - 50 x 3 instância = 150 / 2 instâncias = 75, que está abaixo do limite de expansão de 80, portanto, ele é dimensionado com êxito para 2 instâncias.

Considerações sobre o dimensionamento quando são configuradas várias regras num perfil

Há casos em que você pode ter que definir várias regras em um perfil. O seguinte conjunto de regras de dimensionamento automático é usado pelos serviços quando várias regras são definidas.

Na expansão, o dimensionamento automático é executado se alguma regra for atendida. No scale-in, o dimensionamento automático exige que todas as regras sejam cumpridas.

Para ilustrar, suponha que você tenha as seguintes quatro regras de dimensionamento automático:

  • Se a CPU < for 30%, escale em 1
  • Se a memória for 50%, aumente a < escala em 1
  • Se a CPU > for 75%, aumente em 1
  • Se a memória for 75 > %, dimensione em 1

Em seguida, ocorre o seguinte:

  • Se a CPU é de 76% e a memória é de 50%, nós dimensionamos.
  • Se a CPU é de 50% e a memória é de 76%, nós aumentamos.

Por outro lado, se a CPU for de 25% e a memória de 51%, a escala automática não será dimensionada. Uma expansão automática ocorreria se a CPU fosse de 29% e a memória fosse de 49%, uma vez que ambas as regras de scale-in seriam verdadeiras.

Selecionar sempre uma contagem de instâncias predefinidas segura

A contagem de instâncias padrão é importante porque o dimensionamento automático dimensiona seu serviço para essa contagem quando as métricas não estão disponíveis. Portanto, selecione uma contagem de instâncias padrão que seja segura para suas cargas de trabalho.

Configurar notificações de dimensionamento automático

Dimensionamento automático de postagens no Registro de atividades se ocorrer alguma das seguintes condições:

  • O dimensionamento automático emite uma operação de dimensionamento
  • O serviço de dimensionamento automático conclui com êxito uma ação de dimensionamento
  • O serviço de dimensionamento automático não consegue executar uma ação de escala.
  • As métricas não estão disponíveis para o serviço de dimensionamento automático tomar uma decisão de escala.
  • As métricas estão disponíveis (recuperação) novamente para tomar uma decisão de escala.

Você também pode usar um alerta de registro de atividades para monitorar a integridade do mecanismo de dimensionamento automático. Além de usar alertas de registro de atividades, você também pode configurar notificações por e-mail ou webhook para ser notificado sobre ações de escala bem-sucedidas por meio da guia notificações na configuração de dimensionamento automático.