Todos os produtos
Search
Central de documentação

Function Compute:Limites de dimensionamento de instâncias e políticas elásticas

Última atualização: Sep 06, 2026

O Function Compute dimensiona instâncias automaticamente para lidar com o tráfego recebido. Há dois modos disponíveis: sob demanda e provisionado, cada um com comportamento e limites de dimensionamento específicos. Para instâncias provisionadas, configure também o dimensionamento agendado e o dimensionamento baseado em limiar para ajustar a capacidade conforme os padrões de tráfego.

Como funciona o dimensionamento de instâncias

O Function Compute sempre encaminha as solicitações recebidas primeiro para as instâncias ociosas existentes. Quando todas as instâncias estão ocupadas, ele cria novas. O dimensionamento continua até que a carga de solicitações seja absorvida ou a contagem de instâncias atinja o limite regional.

Duas restrições regem a velocidade de dimensionamento:

  • Máximo de instâncias com burst: número máximo de novas instâncias criáveis em um único burst.

  • Taxa máxima de crescimento de instâncias: velocidade de adição de instâncias ao longo do tempo, medida em instâncias por minuto.

Ambos os limites se aplicam igualmente a instâncias sob demanda e provisionadas na mesma região.

Dimensionamento de instâncias sob demanda

Quando a velocidade de dimensionamento ou a contagem de instâncias excede o limite regional, o Function Compute retorna HTTP 429 para indicar limitação (throttling). A figura a seguir mostra as três fases durante um pico de tráfego.

image

  • Fase 1: as instâncias são iniciadas imediatamente para absorver o pico. Ocorrem cold starts, mas não há limitação, pois o limite de burst ainda não foi atingido.

  • Fase 2: o limite de burst é atingido. A criação de novas instâncias passa a ser restrita pela taxa de crescimento. Algumas solicitações sofrem limitação.

  • Fase 3: a contagem total de instâncias atinge o teto regional. A limitação continua para as solicitações que não podem ser atendidas.

Dimensionamento de instâncias provisionadas

As instâncias provisionadas são pré-inicializadas e mantidas em reserva antes da chegada de qualquer invocação. Isso elimina cold starts para a capacidade reservada e reduz a probabilidade de limitação durante picos de tráfego.

A figura a seguir mostra o mesmo cenário de pico com instâncias provisionadas em uso.

image

  • Fase 1: todas as solicitações recebidas são encaminhadas para instâncias provisionadas. Não ocorrem cold starts nem limitação até que a capacidade provisionada esteja cheia.

  • Fase 2: as instâncias provisionadas ficam saturadas. O Function Compute começa a criar instâncias sob demanda para lidar com o excesso. Ocorrem cold starts, mas a limitação ainda é evitada até que o limite de burst seja atingido.

Limites de velocidade de dimensionamento por região

Região

Máximo de instâncias com burst

Taxa máxima de crescimento de instâncias

china (Hangzhou), china (Shanghai), china (Beijing), china (Zhangjiakou) e china (Shenzhen)

300

300 por minuto

Outras regiões

100

100 por minuto

  • Os limites são compartilhados entre todas as funções da mesma conta em uma região. Instâncias sob demanda e provisionadas são contadas juntas.

  • Instâncias aceleradas por GPU têm dimensionamento mais lento que instâncias de CPU. Use o modo provisionado para pré-alocar instâncias aceleradas por GPU e evitar atrasos de dimensionamento.

Para solicitar velocidades de dimensionamento mais rápidas, entre no grupo do DingTalk (ID do grupo: 64970014484 ) para obter suporte técnico.

Auto Scaling para instâncias provisionadas

Além de uma contagem fixa de instâncias provisionadas, configure ajustes automáticos com dimensionamento agendado e dimensionamento baseado em limiar. Essas políticas ajudam a alinhar a capacidade ao tráfego real e melhoram a utilização das instâncias.

Importante
  • Enquanto uma política elástica estiver ativa, ela substitui o valor inicial de Minimum Instances configurado para a função. Nos períodos sem política elástica em vigor, o sistema reverte para o valor de Minimum Instances configurado inicialmente.

  • Se houver várias políticas elásticas configuradas, o sistema calcula o valor de Minimum Instances que cada política acionaria e usa o maior valor entre as políticas atualmente em vigor como o valor efetivo de Minimum Instances.

Para mais informações, consulte How is the current minimum number of instances calculated?.

Dimensionamento agendado

Utilize o dimensionamento agendado quando o tráfego seguir um padrão previsível, como horários de pico durante o expediente comercial ou aumentos de tráfego ligados a eventos específicos. Quando as invocações simultâneas excederem a capacidade agendada, o excesso será encaminhado para instâncias sob demanda.

Configurar dimensionamento agendado

A figura a seguir mostra um ciclo típico de scale-out/scale-in em torno de um pico de tráfego.

image

O trecho a seguir configura duas políticas agendadas por meio da api PutProvisionConfig para uma função chamada function_1. O fuso horário é Asia/Shanghai (UTC+8). De 1º a 30 de agosto de 2024, a contagem de instâncias provisionadas aumenta para 50 às 20:00 e volta para 10 às 22:00 diariamente.

"scheduledActions": [
    {
      "name": "scale_up_action",
      "startTime": "2024-08-01T10:00:00",
      "endTime": "2024-08-30T10:00:00",
      "target": 50,
      "scheduleExpression": "cron(0 0 20 * * *)",
      "timeZone": "Asia/Shanghai"
    },
    {
      "name": "scale_down_action",
      "startTime": "2024-08-01T10:00:00",
      "endTime": "2024-08-30T10:00:00",
      "target": 10,
      "scheduleExpression": "cron(0 0 22 * * *)",
      "timeZone": "Asia/Shanghai"
    }
  ]

Parameters

Parâmetro

Descrição

name

Nome da tarefa de dimensionamento agendado.

startTime

Momento em que a política entra em vigor. O padrão é UTC se nenhum fuso horário for especificado.

endTime

Momento em que a política expira. O padrão é UTC se nenhum fuso horário for especificado.

target

Número alvo de instâncias provisionadas.

scheduleExpression

Agendamento no formato at(...) ou cron(...). O padrão é UTC se nenhum fuso horário for especificado.

timeZone

Fuso horário do agendamento.

Formatos de expressão de agendamento

Dois formatos são suportados:

  • Expressão At: at(yyyy-mm-ddThh:mm:ss). Executa uma única vez na data e hora especificadas. Por exemplo, at(2024-04-01T20:00:00) com timeZone: Asia/Shanghai dispara às 20:00 de 1º de abril de 2024 (UTC+8).

  • Expressão Cron: cron(0 0 4 * * *). Executa em um cronograma recorrente no formato crontab padrão. Por exemplo, cron(0 0 20 * * *) com timeZone: Asia/Shanghai dispara às 20:00 diariamente (UTC+8).

Cron expression fields

As expressões Cron seguem o formato: Seconds Minutes Hours Day-of-month Month Day-of-week

Campo

Valores válidos

Caracteres especiais permitidos

Seconds

0–59

Nenhum

Minutes

0–59

, - * /

Hours

0–23

, - * /

Day-of-month

1–31

, - * ? /

Month

1–12 ou JAN–DEC

, - * /

Day-of-week

1–7 ou MON–SUN

, - * ?

Special characters

Caractere

Significado

Exemplo

*

Qualquer / todos

Em Minutes, * significa a cada minuto.

,

Lista de valores

Em Day-of-week, MON,WED,FRI significa toda segunda, quarta e sexta-feira.

-

Intervalo

Em Hours, 10-12 significa das 10:00 às 12:00 no fuso horário especificado.

?

Valor não especificado

Usado quando uma data é definida sem vinculá-la a um dia específico da semana.

/

Incremento (n/m = a cada m começando em n)

Em Minutes, 3/5 significa a cada 5 minutos começando no minuto 3.

Dimensionamento baseado em limiar

Utilize o dimensionamento baseado em limiar quando o tráfego for mais difícil de prever. O Function Compute coleta periodicamente métricas de concorrência ou utilização de recursos das instâncias provisionadas e ajusta a contagem de instâncias para permanecer dentro do intervalo minCapacitymaxCapacity definido.

O dimensionamento baseado em limiar exige que a coleta de métricas no nível da instância esteja ativada previamente. Sem isso, você receberá um erro 400 InstanceMetricsRequired . Consulte Ative collection of instance-level metrics .
A métrica ProvisionedConcurrencyUtilization rastreia apenas instâncias provisionadas. A concorrência de instâncias sob demanda é excluída.
A utilização de concorrência é a razão entre o número de solicitações simultâneas atualmente tratadas pelas Minimum Instances e o número máximo de solicitações simultâneas que as Minimum Instances podem suportar. O valor varia de 0 a 1.

Configurar dimensionamento baseado em limiar

A figura a seguir ilustra como o Function Compute faz scale-out quando o limiar de utilização de concorrência é excedido e scale-in quando a utilização cai.

image

O trecho a seguir configura uma política de dimensionamento baseado em limiar por meio da api PutProvisionConfig para function_1. O fuso horário é Asia/Shanghai (UTC+8) e a política está ativa de 1º a 30 de agosto de 2024. A política rastreia a métrica Provisioned concurrency utilization ProvisionedConcurrencyUtilization, com um valor alvo de 60% para a Provisioned concurrency utilization. Quando a utilização excede 60%, o scale-out é iniciado, até um máximo de 100 instâncias. Quando a utilização cai abaixo de 60%, o scale-in é iniciado, até um mínimo de 10 instâncias.

"targetTrackingPolicies": [
    {
      "name": "action_1",
      "startTime": "2024-08-01T10:00:00",
      "endTime": "2024-08-30T10:00:00",
      "metricType": "ProvisionedConcurrencyUtilization",
      "metricTarget": 0.6,
      "minCapacity": 10,
      "maxCapacity": 100,
      "timeZone": "Asia/Shanghai"
    }
  ]

Parameters

Parâmetro

Descrição

name

Nome da tarefa de dimensionamento baseado em limiar.

startTime

Momento em que a política entra em vigor. O padrão é UTC se nenhum fuso horário for especificado.

endTime

Momento em que a política expira. O padrão é UTC se nenhum fuso horário for especificado.

metricType

Métrica a ser rastreada. Exemplo: ProvisionedConcurrencyUtilization.

metricTarget

Valor alvo da métrica. Por exemplo, se este parâmetro for definido como 0.6, o scale-out começa quando a Provisioned concurrency utilization excede 60%, e o scale-in começa quando cai abaixo de 60%.

minCapacity

Número mínimo de instâncias provisionadas.

maxCapacity

Número máximo de instâncias provisionadas.

timeZone

Fuso horário da janela da política.

Cálculos de dimensionamento

O Function Compute faz scale-out de forma agressiva e scale-in gradualmente. A contagem alvo de instâncias é o menor número inteiro maior ou igual ao resultado calculado.

  • Alvo de scale-out = Instâncias atuais × (Valor atual da métrica / metricTarget)

  • Alvo de scale-in = Instâncias atuais × Coeficiente de scale-in × (1 − Valor atual da métrica / metricTarget)

O coeficiente de scale-in é um parâmetro do sistema entre 0 (exclusivo) e 1 que desacelera o scale-in para evitar oscilações. Não requer configuração manual.

Exemplo: Se o valor atual da métrica for 80%, o alvo configurado de Provisioned concurrency utilization for 40% e o número mínimo atual de instâncias for 100:

Alvo de scale-out = 100 × (80% / 40%) = 200 instâncias

O Function Compute aumenta a contagem para 200 (limitado a maxCapacity) para trazer a utilização de volta ao alvo de 40%.

Como é calculado o número mínimo atual de instâncias?

O exemplo a seguir mostra como o número mínimo atual de instâncias é determinado conjuntamente pelo número mínimo de instâncias configurado inicialmente e pelos valores alvo definidos nas políticas de dimensionamento agendado.

Configuração:

  • defaultTarget: 5

  • Duas políticas agendadas, fuso horário Asia/Shanghai (UTC+8), ativas de 9 a 11 de janeiro de 2025

    • Scale-out para 20 às 10:00 diariamente

    • Scale-in para 10 às 22:00 diariamente

{
    "defaultTarget": 5,
    "scheduledActions": [
        {
            "name": "scale_up_action",
            "startTime": "2025-01-09T10:00:00",
            "endTime": "2025-01-11T00:00:00",
            "target": 20,
            "scheduleExpression": "cron(0 0 10 * * *)",
            "timeZone": "Asia/Shanghai"
        },
        {
            "name": "scale_down_action",
            "startTime": "2025-01-09T10:00:00",
            "endTime": "2025-01-11T00:00:00",
            "target": 10,
            "scheduleExpression": "cron(0 0 22 * * *)",
            "timeZone": "Asia/Shanghai"
        }
    ]
}

A figura a seguir mostra como a contagem de instâncias provisionadas muda ao longo do tempo sob esta configuração.

image

Concorrência máxima

A concorrência máxima é o número total de solicitações simultâneas que todas as instâncias provisionadas podem tratar de uma só vez. Ela depende da configuração de concorrência de instância da sua função.

  • Instâncias de solicitação única (cada instância trata uma solicitação por vez): Concorrência máxima = Número de instâncias

  • Instâncias de múltiplas solicitações (cada instância trata várias solicitações simultaneamente): Concorrência máxima = Número de instâncias × Concorrência da instância

Para detalhes sobre como configurar a concorrência de instância e seu impacto no comportamento de dimensionamento, consulte Configure instance concurrency.

Próximos passos