Compartilhar via


Dimensionamento automático com vários perfis

Escalar seus recursos para um determinado dia da semana ou uma data e hora específicas pode reduzir seus custos enquanto ainda fornece a capacidade necessária quando você precisa.

Você pode usar vários perfis no dimensionamento automático para escalar de maneiras diferentes em momentos diferentes. Se, por exemplo, sua empresa não estiver ativa no fim de semana, crie um perfil recorrente para reduzir seus recursos horizontalmente aos sábados e domingos. Se a Black Friday for um dia agitado, crie um perfil para escalar seus recursos horizontalmente na Black Friday.

Este artigo explica os diferentes perfis no dimensionamento automático e como usá-los.

Você pode ter um ou mais perfis em sua configuração de dimensionamento automático.

Há três tipos de perfil:

  • O perfil padrão. O perfil padrão é criado automaticamente e não depende de uma agenda. O perfil padrão não pode ser excluído. O perfil padrão é usado quando não há outros perfis que correspondam à data e hora atuais.
  • Perfis recorrentes. Um perfil recorrente é válido para um intervalo de tempo específico e se repete para os dias selecionados da semana.
  • Perfis de data e hora fixos. Um perfil válido para um intervalo de tempo em uma data específica.

Sempre que o serviço de dimensionamento automático é executado, os perfis são avaliados na seguinte ordem:

  1. Perfis de data fixa
  2. Perfis recorrentes
  3. Perfil padrão

Se as configurações de data e hora de um perfil corresponderem à hora atual, o dimensionamento automático aplicará as regras e os limites de capacidade desse perfil. Somente o primeiro perfil aplicável é usado.

O exemplo a seguir mostra uma configuração de dimensionamento automático com um perfil padrão e um perfil recorrente.

A screenshot showing an autoscale setting with default and recurring profile or scale condition.

No exemplo acima, na segunda-feira após as 3h, o perfil recorrente deixará de ser usado. Se a contagem de instâncias for menor que 3, o dimensionamento automático escalará para o novo mínimo de três. O dimensionamento automático continua a usar esse perfil e escala com base no % de CPU até segunda-feira às 20h. Em todos os outros momentos, a escala será feita de acordo com o perfil padrão, com base no número de solicitações. Depois das 20h de segunda-feira, o dimensionamento automático muda para o perfil padrão. Se, por exemplo, o número de instâncias no momento é 12, o dimensionamento automático reduz horizontalmente em 10, o máximo permitido para o perfil padrão.

Vários perfis contíguos

Transições de dimensionamento automático entre perfis com base nos horários de início. A hora de término de um perfil especificado é determinado pela hora de início do perfil a seguir.

No portal, o campo de hora de término passa a ser a próxima hora de início do perfil padrão. Não é possível especificar a mesma hora para o final de um perfil e o início do próximo. O portal forçará a hora de término a ser um minuto antes da hora de início do perfil a seguir. Durante esse minuto, o perfil padrão ficará ativo. Caso não deseje que o perfil padrão se torne ativo entre os perfis recorrentes, mantenha o campo de hora de término vazio.

Dica

Para configurar vários perfis contíguos usando o portal, mantenha a hora de término vazia. O perfil atual deixará de ser usado quando o próximo perfil se tornar ativo. Especifique apenas uma hora de término quando quiser reverter para o perfil padrão. A criação de um perfil recorrente sem hora de término só tem suporte por meio do portal e dos modelos do ARM.

Vários perfis usando modelos, CLI e PowerShell

Ao criar vários perfis usando modelos, CLI e PowerShell, siga as diretrizes abaixo.

Consulte a seção de dimensionamento automático da definição de recurso de modelo do ARM para obter uma referência de modelo completa.

Não há nenhuma especificação no modelo para a hora de término. Um perfil permanecerá ativo até a hora de início do próximo perfil.

Adicionar um perfil recorrente usando modelos do ARM

O exemplo abaixo mostra como criar dois perfis recorrentes. Um perfil para fins de semana a partir da 00:01 da manhã de sábado e um segundo perfil de dia da semana começando às segundas-feiras às 04:00. Isso significa que o perfil do fim de semana começará no sábado de manhã em um minuto após a meia-noite e terminará na segunda-feira de manhã às 04:00. O perfil de dia da semana começará às 4h da manhã de segunda-feira e acabará logo após a meia-noite de sábado.

Use o seguinte comando para implantar o modelo: az deployment group create --name VMSS1-Autoscale-607 --resource-group rg-vmss1 --template-file VMSS1-autoscale.json em que VMSS1-autoscale.json é o arquivo que contém o objeto JSON abaixo.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                "profiles": [
                    {
                        "name": "Weekday profile",
                        "capacity": {
                            "minimum": "3",
                            "maximum": "20",
                            "default": "3"
                        },
                        "rules": [
                            {
                                "scaleAction": {
                                    "direction": "Increase",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "GreaterThan",
                                    "statistic": "Average",
                                    "threshold": 100,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            },
                            {
                                "scaleAction": {
                                    "direction": "Decrease",
                                    "type": "ChangeCount",
                                    "value": "1",
                                    "cooldown": "PT5M"
                                },
                                "metricTrigger": {
                                    "metricName": "Inbound Flows",
                                    "metricNamespace": "microsoft.compute/virtualmachinescalesets",
                                    "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
                                    "operator": "LessThan",
                                    "statistic": "Average",
                                    "threshold": 60,
                                    "timeAggregation": "Average",
                                    "timeGrain": "PT1M",
                                    "timeWindow": "PT10M",
                                    "Dimensions": [],
                                    "dividePerInstance": true
                                }
                            }
                        ],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Monday"
                                ],
                                "hours": [
                                    4
                                ],
                                "minutes": [
                                    0
                                ]
                            }
                        }
                    },
                    {
                        "name": "Weekend profile",
                        "capacity": {
                            "minimum": "1",
                            "maximum": "3",
                            "default": "1"
                        },
                        "rules": [],
                        "recurrence": {
                            "frequency": "Week",
                            "schedule": {
                                "timeZone": "E. Europe Standard Time",
                                "days": [
                                    "Saturday"                                    
                                ],
                                "hours": [
                                    0
                                ],
                                "minutes": [
                                    1
                                ]
                            }
                        }
                    }
                ],
                "notifications": [],
                "targetResourceLocation": "eastus"
            }

        }
    ]
}    

Próximas etapas