Configurar um Conjunto de Dimensionamento de Máquinas Virtuais

Concluído

Quando dimensiona, adiciona instâncias ao Conjunto de Dimensionamento de Máquinas Virtuais. No cenário da transportadora, o dimensionamento é uma boa forma de lidar com a alteração do número de pedidos ao longo do tempo. O dimensionamento ajusta o número de máquinas virtuais que executam a aplicação Web à medida que o número de utilizadores muda. Desta forma, o sistema mantém um tempo de resposta uniforme, independentemente da carga atual.

Nesta unidade, irá aprender a dimensionar um Conjunto de Dimensionamento de Máquinas Virtuais. Pode dimensionar manualmente ao definir explicitamente o número de instâncias de máquina virtual no conjunto de dimensionamento ou pode configurar o dimensionamento automático ao definir regras de dimensionamento que acionam a alocação e a desalocação de máquinas virtuais. Estas regras de dimensionamento determinam quando deve dimensionar o sistema ao monitorizar diversas métricas de desempenho.

Dimensionar manualmente Conjuntos de Dimensionamento de Máquinas Virtuais

Pode dimensionar manualmente um Conjunto de Dimensionamento de Máquinas Virtuais ao aumentar ou diminuir a contagem de instâncias. Pode realizar esta tarefa através de programação ou no portal do Azure.

O código seguinte utiliza a CLI do Azure para alterar o número de instâncias num Conjunto de Dimensionamento de Máquinas Virtuais:

az vmss scale \
    --name MyVMScaleSet \
    --resource-group MyResourceGroup \
    --new-capacity 6

Dimensionamento automático Conjuntos de Dimensionamento de Máquinas Virtuais

Em algumas circunstâncias, o dimensionamento manual é útil. Contudo, em muitas situações, o dimensionamento automático é melhor. Este último permite que o sistema controle o número de instâncias num conjunto de dimensionamento.

O dimensionamento automático é baseado em:

  • Agenda: utilize esta abordagem se souber que terá uma carga de trabalho maior num determinado período de tempo ou data.
  • Métricas: ajuste o dimensionamento ao monitorizar as métricas de desempenho associadas ao conjunto de dimensionamento. Quando estas métricas excedem o limiar especificado, o conjunto de dimensionamento pode iniciar automaticamente novas instâncias da máquina virtual. Quando as métricas indicam que os recursos adicionais já não são necessários, o conjunto de dimensionamento pode interromper o excesso de instâncias.

Definir limites, regras e condições de dimensionamento automático

O dimensionamento automático é baseado num conjunto de limites, regras e condições de dimensionamento. Uma condição de dimensionamento combina a hora e um conjunto de regras de dimensionamento. Se a hora atual for abrangida pelo período definido na condição de dimensionamento, as regras de dimensionamento da condição serão avaliadas. Os resultados desta avaliação determinam se deve adicionar ou remover instâncias no conjunto de dimensionamento. A condição de dimensionamento também define os limites de dimensionamento para o número máximo e mínimo de instâncias.

No cenário da transportadora, pode adicionar regras de dimensionamento que monitorizam a utilização da CPU no conjunto de dimensionamento. Se a utilização da CPU exceder o limiar de 75%, a regra de dimensionamento pode aumentar o número de instâncias da máquina virtual. Uma segunda regra de dimensionamento também pode monitorizar a utilização da CPU, mas reduzir o número de instâncias de máquina virtual quando a utilização for inferior a 50%. Devido à natureza global da aplicação, estas regras devem estar sempre ativadas e não apenas em horas específicas.

Um Conjunto de Dimensionamento de Máquinas Virtuais pode conter muitas condições de dimensionamento. Cada condição de dimensionamento correspondente é analisada. Um conjunto de dimensionamento também pode conter uma condição de dimensionamento predefinida que é utilizada se nenhuma condição de dimensionamento corresponder às métricas de desempenho e hora atual. A condição de dimensionamento predefinida está sempre ativada. Não contém regras de dimensionamento, agindo efetivamente como uma condição de dimensionamento nula que não aumenta ou reduz horizontalmente. No entanto, pode modificar a condição de dimensionamento predefinida para definir uma contagem de instâncias predefinida ou pode adicionar um par de regras de dimensionamento que aumentam horizontalmente e voltam a ser aumentadas horizontalmente.

Utilizar o dimensionamento automático com base na agenda

O dimensionamento baseado na agenda especifica uma hora de início e de fim e o número de instâncias a adicionar ao conjunto de dimensionamento. A seguinte captura de ecrã mostra um exemplo no portal do Azure. O número de instâncias é dimensionado para 20 entre as 6:00 e as 18:00, a cada segunda-feira e quarta-feira. Fora desses horários, se não existirem outras condições de dimensionamento, a condição de dimensionamento predefinida vai ser aplicada.

Neste caso, a regra predefinida vai dimensionar o sistema para duas instâncias. Nesta condição de dimensionamento predefinida, este é o valor Máximo.

Captura de ecrã a mostrar um exemplo de uma condição de dimensionamento com base na agenda.

Utilizar o dimensionamento automático baseado em métricas

A regra de dimensionamento com base em métricas especifica os recursos a monitorizar, como a utilização da CPU ou o tempo de resposta. Esta regra de dimensionamento adiciona ou remove instâncias do conjunto de dimensionamento de acordo com os valores destas métricas. Pode especificar limites no número de instâncias para impedir que um conjunto de dimensionamento aumente ou reduza horizontalmente excessivamente.

No cenário de exemplo, quer aumentar o número de instâncias ao adicionar apenas uma, quando a utilização média da CPU exceder os 75%. Além disso, quer limitar a operação de aumento horizontal a 50 instâncias. Este limite pode ajudar a evitar o dimensionamento dispendioso com tempo de execução excessivo causado por um ataque. Também quer reduzir horizontalmente quando a utilização média da CPU ficar abaixo de 50%.

Estas métricas são normalmente utilizadas para monitorizar um Conjunto de Dimensionamento de Máquinas Virtuais:

  • Percentagem da CPU: esta métrica indica a utilização da CPU em todas as instâncias. Um valor elevado mostra que as instâncias estão a tornar-se vinculadas à CPU, o que pode provocar atrasos no processamento de pedidos dos clientes.
  • Fluxos de entrada e fluxos de saída: estas métricas mostram a rapidez dos fluxos de entrada e de saída do tráfego de rede das máquinas virtuais no conjunto de dimensionamento.
  • Operações de leitura de discos/segundo e operações de escrita de discos/segundo: estas métricas mostram o volume de E/S do disco no conjunto de dimensionamento.
  • Profundidade da fila do disco de dados: esta métrica apresenta a quantidade de pedidos de E/S dos discos de dados nas máquinas virtuais que está por servir.

Uma regra de dimensionamento agrega os valores obtidos de uma métrica para todas as instâncias. Os valores são agregados ao longo de um período denominado intervalo de agregação. Cada métrica possui um intervalo de agregação intrínseco, mas este período é normalmente de um minuto. O valor agregado é conhecido como a agregação de tempo. As opções de agregação de tempo são: média, mínimo, máximo, total, último e contagem.

Um intervalo de um minuto é demasiado curto para determinar se uma alteração na métrica tem a duração suficiente para justificar a utilização do dimensionamento automático. Uma regra de dimensionamento segue um segundo passo que gera uma agregação adicional do valor da agregação de tempo durante um período maior e especificado pelo utilizador. Este período é chamado de duração. A duração mínima é cinco minutos. Por exemplo, se a duração for definida para 10 minutos, a regra de dimensionamento agrega os 10 valores calculados para o intervalo de agregação.

O cálculo de agregação da duração pode ser diferente do cálculo de agregação do intervalo de agregação. Por exemplo, imaginemos que a agregação de tempo é média e que a estatística obtida é a percentagem da CPU no intervalo de agregação de um minuto. Por cada minuto, será calculada a percentagem média de utilização da CPU em todas as instâncias durante esse minuto. Se a estatística do intervalo de agregação estiver definida para máximo e a duração da regra estiver definida para 10 minutos, o máximo dos 10 valores médios da percentagem de utilização da CPU determina se o limiar da regra foi ultrapassado.

Quando uma regra de dimensionamento detetar que uma métrica ultrapassou um limiar, a mesma pode efetuar uma ação de dimensionamento. Uma ação de dimensionamento pode ser de aumento horizontal ou de redução horizontal. Uma ação de aumento horizontal aumenta o número de instâncias. Uma ação de redução horizontal diminui o número de instâncias.

Uma ação de dimensionamento utiliza um operador (como menos que, maior que ou igual a) para determinar como deve reagir ao limiar. Normalmente, as ações de aumento horizontal utilizam o operador maior que para comparar o valor da métrica com o limiar. As ações de redução horizontal tendem a comparar o valor da métrica com o limiar ao utilizar o operador menos que. Uma ação de dimensionamento também define o número de instâncias para um nível específico, ao invés de aumentar ou diminuir o número disponível.

Uma ação de dimensionamento tem um tempo de arrefecimento que é especificado em minutos. Durante este período, a regra de dimensionamento não volta a ser acionada. O arrefecimento permite a estabilização do sistema entre eventos de dimensionamento. Iniciar ou encerrar instâncias demora tempo, pelo que as métricas recolhidas poderão não mostrar alterações significativas durante vários minutos. O tempo de arrefecimento mínimo é de cinco minutos.

Por fim, deve planear uma redução horizontal quando uma carga de trabalho diminuir. Pondere definir regras de dimensionamento em pares na mesma condição de dimensionamento. Uma regra de dimensionamento deve indicar como o sistema deve ser aumentado horizontalmente quando uma métrica exceder um limiar superior. A outra regra tem de definir como o sistema será reduzido horizontalmente quando essa mesma métrica ficar abaixo de um limiar inferior. Não atribua o mesmo valor a ambos os limiares, Caso contrário, pode acionar uma série de eventos oscilantes que podem aumentar e reduzir horizontalmente.

A seguinte imagem mostra uma regra de dimensionamento definida no portal do Azure.

Captura de ecrã a mostrar uma regra de dimensionamento baseada em métricas no portal do Azure.