Dimensionamento automático

O dimensionamento automático permite ajustar automaticamente o número ou o estado do ciclo de vida de instâncias de computação em um pool de instâncias. Isso ajuda a fornecer um desempenho consistente para seus usuários finais durante períodos de alta demanda e ajuda a reduzir os custos durante períodos de demanda baixa.

Você pode aplicar os seguintes tipos de dimensionamento automático a um pool de instâncias:

Há suporte para dimensionamento automático em pools de instâncias de máquina virtual (VM) e bare metal que usam formas padrão, com alta densidade de Entrada/Saída e GPU.

Você pode executar as seguintes tarefas com o Dimensionamento Automático.

Como Funciona o Dimensionamento Automático: Fundamentos

Use configurações de dimensionamento automático para gerenciar automaticamente o tamanho e o estado do ciclo de vida dos pools de instâncias. Quando o dimensionar automaticamente provisiona instâncias em um pool de instâncias, o pool é ampliado. Quando o dimensionamento automático remove instâncias do pool, o pool é reduzido. Você também pode usar o dimensionamento automático para interromper e iniciar instâncias em um pool de instâncias com base em uma programação.

Quando um pool de instâncias é dimensionado, as instâncias são encerradas (excluídas). As instâncias são encerradas nesta ordem: o número de instâncias é balanceado nos domínios de disponibilidade e, em seguida, balanceado nos domínios de falha. Finalmente, dentro de um domínio de falha, a instância mais antiga é encerrada primeiro.

Uma configuração de dimensionamento automático inclui uma ou mais políticas de dimensionamento automático. Essas políticas definem os critérios que disparam ações de dimensionamento automático e as ações a serem executadas. Cada configuração de dimensionamento automático pode ter uma política de dimensionamento automático baseada em métrica ou várias baseadas em programação. Você pode adicionar no máximo 50 políticas de dimensionamento automático baseadas em programação a uma configuração de dimensionamento automático.

Cada pool de instâncias só pode ter uma configuração de dimensionamento automático.

Dimensionamento Automático Baseado em Métrica

No dimensionamento automático baseado em métrica, você escolhe uma métrica de desempenho a ser monitorada e define os limites que a métrica de desempenho deve atingir para acionar um evento de dimensionamento automático. Quando o uso do sistema atinge um limite, o dimensionamento automático redimensiona dinamicamente o pool de instâncias quase em tempo real. À medida que a carga aumenta, o pool é ampliado. À medida que a carga diminui, o pool é reduzido.
Dica

Evite alterar o valor designado ao número inicial de instâncias após o dimensionamento do pool. A redução desse valor após o aumento do número de instâncias no tamanho do pool fará com que as instâncias do pool sejam encerradas. Se você precisar alterar esse valor, o novo valor deverá ser igual ou ficar acima do número de instâncias atualmente no pool.

O dimensionamento automático baseado em métricas depende de métricas de desempenho coletadas pelo serviço Monitoring, como utilização de CPU. Essas métricas de desempenho são agregadas em períodos de um minuto e, em seguida, ponderadas entre todas as instâncias do pool. Quando três valores consecutivos (ou seja, as métricas médias de três minutos consecutivos) atingem o limite, um evento de dimensionamento automático é acionado.

Um período de cooldown entre eventos de dimensionamento automático permite que o sistema se estabilize no nível atualizado. O período de cooldown é iniciado quando o pool de instâncias atinge o estado Em Execução. O dimensionamento automático continua a avaliar métricas de desempenho durante o período de cooldown. Quando o período de cooldown termina, o dimensionamento automático ajusta o tamanho do pool de instâncias novamente, se necessário.

Dimensionamento Automático Baseado em Programação

Você pode usar o dimensionamento automático baseado em programação para dimensionar o tamanho do pool com base na demanda ou para interromper e iniciar instâncias com base em uma programação.

O dimensionamento automático baseado em programação é ideal para pools de instâncias em que a demanda se comporta previsivelmente com base em uma programação, como mês, data ou hora do dia. As programações podem ser recorrentes ou únicas. Por exemplo:

  • Um pool de instâncias tem uso pesado durante o horário comercial. O pool tem uso mais leve à noite e fins de semana. Você pode programar o pool para ser ampliado nas manhãs e reduzido nas noites dos dias úteis.
  • Um pool de instâncias tem alta demanda na véspera de ano novo. Você pode programar o pool para ser ampliado todo ano no dia 30 de dezembro e reduzido dia 2 de janeiro.
  • Você está liberando um novo aplicativo que é executado no pool de instâncias e espera que muitas pessoas comecem a usar o aplicativo após o anúncio público. Com antecedência, você pode programar as instâncias do pool para serem iniciadas no dia da liberação.

Uma configuração de dimensionamento automático baseada em programação pode ter várias políticas de dimensionamento automático, cada uma com programação, tamanho de pool desejado e ação de ciclo de vida diferentes. Para configurar eventos de ampliação e redução, crie pelo menos duas políticas distintas. Uma política define o tamanho do pool desejado e a programação para redução e outra política os define para ampliação. Da mesma forma, se você quiser programar eventos de interrupção e início, crie pelo menos duas políticas distintas. Uma política define a ação do ciclo de vida e a programação para interromper as instâncias e outra política as define para iniciar as instâncias.

Depois que uma política de dimensionamento automático baseada em programação é executada, o pool de instâncias permanece no tamanho do pool desejado ou no estado do ciclo de vida até que algo mais os altere, como outra política de dimensionamento automático. No entanto, se você alterar manualmente o tamanho do pool ou o estado do ciclo de vida, o dimensionamento automático baseado em programação não reajustará o tamanho do pool ou o estado do ciclo de vida enquanto a próxima política de dimensionamento automático programada não for executada.

Quando você usa o dimensionamento automático baseado em programação para interromper ou reiniciar instâncias, as informações sobre as instâncias são preservadas. Quando as instâncias são iniciadas após um shutdown, elas são retornadas ao estado em que estavam antes do shutdown.

Você define programações de dimensionamento automático usando expressões cron. O dimensionamento automático usa a implementação do cron Quartz. Você pode usar um gerador de expressões cron on-line para verificar suas expressões cron; um exemplo seria FREEFORMATTER.

Todos os horários em UTC.

Observação

As configurações de dimensionamento automático baseadas em programação incluem um atributo para o período de cooldown, que você vê na Console e ao usar a API, SDKs e a CLI. No entanto, o período de cooldown não impacta as configurações de dimensionamento automático baseadas em programação.

Gerenciamento de Várias Programações

Se existirem várias políticas de dimensionamento automático baseadas em programação, as programações poderão entrar em conflito. Se ocorrer um conflito, a Oracle escolherá uma política de estado do ciclo de vida e uma política de dimensionamento automático para execução. A política de estado do ciclo de vida é executada primeiro.

Para a política de estado do ciclo de vida, é escolhida a política com a ação de prioridade mais alta. As ações são priorizadas da seguinte forma, listadas da prioridade mais alta para a mais baixa:

  • Force a reinicialização
  • Reinicializar
  • Iniciar
  • Impor interrupção
  • Interromper

Para a política de dimensionamento automático, a política com a maior contagem de instâncias é escolhida.

Para ver como a programação de dimensionamento automático deve afetar o tamanho do pool no futuro, exiba a previsão do tamanho do pool.

Sobre Expressões Cron

Uma expressão cron é uma string composta por seis ou sete campos que representam as diferentes partes de uma programação, como horas ou dias da semana. As expressões cron usam este formato:

<second> <minute> <hour> <day of month> <month> <day of week> <year>

Expressões Cron

A tabela a seguir lista os valores e os caracteres especiais permitidos para cada campo.

Campo Valores Permitidos Caracteres Especiais Permitidos
Segundo

0

Observação: Ao usar a API, a CLI ou SDKs para dimensionamento automático, especifique 0 como valor para segundos, mesmo que outros valores criem uma expressão cron válida. Não é necessário fornecer qualquer valor para segundos ao usar a Console.

Nenhuma
Minuto 0-59 * -, /
Hora 0-23 * -, /
Dia do mês 1-31 * -, ? / L W
Mês 1-12 ou JAN-DEC * -, /
Dia da semana 1-7 ou SUN-SAT * - , ? / L #
Ano 1970-2099 * -, /

Os caracteres especiais são descritos na tabela a seguir.

Caractere Especial Descrição Exemplo
* Indica todos os valores de um campo. * no campo mês significa todos os meses.
- Transmitir uma faixa de valores 8-17 no campo de hora significa horas de 8 a 17, ou de 8 a.m. a 5 p.m.
, Indica diversos valores. 3,5 no campo dia da semana significa terça e quinta.
?

Indica nenhum valor específico.

Quando quiser especificar um dia do mês, use? no campo dia da semana.

Quando quiser especificar um dia da semana, use? no campo dia do mês.

0 0 10? * MON * significa 10h todas as segundas-feiras.
/ Use n/m para indicar incrementos. O valor antes da barra é a hora inicial e o número após a barra é o valor a ser incrementado. 0/20 no campo minuto significa os minutos 0, 20 e 40.
L

Último dia da semana ou último dia do mês.

Use xL no campo dia da semana para indicar o último x dia do mês.

Use L-n no campo dia do mês para indicar um deslocamento de n dias a partir do último dia do mês.

Não use L com diversos valores ou uma faixa de valores.

L no campo dia do mês significa 31 de janeiro, 28 de fevereiro em anos não bissextos e assim por diante.

6L no campo do dia da semana significa a última sexta-feira do mês.

L-5 significa 5 dias antes do último dia do mês.

W

O dia útil (segunda a sexta) que está mais próximo do dia determinado.

O valor não cruza meses.

É possível combinar os caracteres L e W (LW) no campo dia do mês para indicar o último dia da semana do mês.

Não use W com diversos valores ou uma faixa de valores.

10W significa o dia útil mais próximo do dia 10 do mês. Se o dia 10 for sábado, significa sexta-feira dia 9. Se o dia 10 for domingo, significa segunda-feira dia 11. Se o dia 10 for quarta-feira, significa quarta-feira dia 10.
# Use x#n para indicar o enésimo x dia do mês. 5#2 significa a segunda quinta-feira do mês.

Exemplo de Expressões Cron

Use esses exemplos de expressões cron como ponto de partida para criar suas próprias programações de dimensionamento automático. Combine cada expressão cron com um tamanho de pool de destino para criar uma política de dimensionamento automático. Em seguida, inclua uma ou mais políticas de dimensionamento automático em uma configuração de dimensionamento automático.

Exemplos de Cron

Meta: Uma programação única com apenas um evento de dimensionamento. Às 11:00 p.m. de 31 de dezembro de 2020, dimensione um pool de instâncias para 100 instâncias. Você precisará de uma política de dimensionamento automático.

  • Política 1:

    • Tamanho do pool de destino: 100 instâncias
    • Horário de execução: 11:00 p.m. no dia 31 de dezembro de 2020
    • Cron expressão: 0 23 31 12 ? 2020

Meta: Uma programação única com um evento de ampliação e um evento de redução. Às 10:00 a.m. do dia 1 de março de 2021, ampliar para 75 instâncias. Às 4 p.m. do dia 7 de março de 2021, reduzir para 30 instâncias. Você precisará de duas políticas de dimensionamento automático.

  • Política 1 - ampliar:

    • Tamanho do pool de destino: 75 instâncias
    • Horário de execução: 10:00 a.m. do dia 1 de março de 2021
    • Expressão cron: 0 0 10 1 3 ? 2021
  • Política 2 - reduzir:

    • Tamanho do pool de destino: 30 instâncias
    • Horário de execução: 4:00 p.m. do dia 7 de março de 2021
    • Expressão cron: 0 0 16 7 3 ? 2021

Meta: Uma programação diária recorrente. Nas manhãs dos dias úteis às 8:30 a.m., ampliar para 10 instâncias. Nas noites dos dias úteis às 6 p.m., reduzir para duas instâncias. Você precisará de duas políticas de dimensionamento automático.

  • Política 1 - ampliação matinal:

    • Tamanho do pool de destino: 10 instâncias
    • Horário de execução: 8:30 a.m. de segunda a sexta, todo mês, todo ano
    • Expressão cron: 0 0 30 8 ? * MON-FRI *
  • Política 2 - redução noturna:

    • Tamanho do pool de destino: 2 instâncias
    • Horário de execução: 6:00 p.m. de segunda a sexta, todo mês, todo ano
    • Expressão cron: 0 18 ? * MON-FRI *

Meta: Uma programação semanal recorrente. Às terças e quintas, dimensione o pool para 30 instâncias. Em todos os outros dias da semana, dimensionar o pool para 20 instâncias. Você precisará de duas políticas de dimensionamento automático.

  • Política 1 - terça e quinta:

    • Tamanho do pool de destino: 30 instâncias
    • Horário de execução: 1 a.m. toda terça e quinta, todo mês, todo ano
    • Expressão cron: 0 0 1 ? * TUE,THU *
  • Política 2 - todos os demais dias:

    • Tamanho do pool de destino: 20 instâncias
    • Horário de execução: 1 a.m. de domingo a segunda, quarta e sexta a sábado, todo mês, todo ano
    • Expressão cron: 0 0 1 ? * SUN-MON,WED,FRI-SAT *

Meta: Uma programação mensal recorrente. Todos os dias do mês, definir o tamanho do pool como 20 instâncias. No dia 15 do mês, ampliar para 40 instâncias. Você precisará de duas políticas de dimensionamento automático.

  • Política 1 - tamanho do pool diário:

    • Tamanho do pool de destino: 20 instâncias
    • Horário de execução: Meia-noite, todo dia, ,todo mês, todo ano
    • Expressão Cron: 0 0 0 * ? *
  • Política 2 - ampliar:

    • Tamanho do pool de destino: 40 instâncias
    • Horário de execução: 12:05 a.m., no dia 15 do mês, todo mês, todo ano
    • Expressão cron: 0 5 0 15 * ? *

Política de IAM Necessária

Para usar o Oracle Cloud Infrastructure, um administrador deve ser membro de um grupo ao qual foi concedido acesso de segurança em uma política por um administrador da tenancy. Esse acesso será necessário se você estiver usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você receber uma mensagem informando que não tem permissão ou está não autorizado, verifique com o administrador da tenancy qual tipo de acesso você tem e qual compartimento seu acesso funciona.

Para administradores: Para conhecer uma política típica que dê acesso às configurações de dimensionamento automático, consulte Permitir que os usuários gerenciem as configurações de dimensionamento automático do serviço Compute.

Recursos de Tags

Aplique tags aos recursos para ajudar a organizá-los de acordo com as necessidades da sua empresa. Você pode aplicar tags ao criar um recurso e pode atualizar um recurso posteriormente para adicionar, revisar ou remover tags. Para obter informações gerais sobre a aplicação de tags, consulte Tags de Recursos.

Requisitos para Dimensionamento Automático

  • Você tem um pool de instâncias. Opcionalmente, você pode anexar um balanceador de carga ou balanceador de carga de rede ao pool de instâncias.
  • Para dimensionamento automático baseado em métricas, o monitoramento é ativado nas instâncias do pool e o serviço Monitoring está recebendo as métricas emitidas pela instância. Quando você cria inicialmente um pool de instâncias usando instâncias que suportam monitoramento, o monitoramento é ativado por padrão, independentemente das definições na configuração da instância do pool.
  • Você tem limites de serviço suficientes para criar o número máximo de instâncias para as quais deseja dimensionar.