Todos os produtos
Search
Central de documentação

Platform For AI:Recurso de auto scaling horizontal

Última atualização: Jul 08, 2026

O auto scaling horizontal ajusta automaticamente as réplicas do serviço com base em métricas em tempo real para manter o desempenho e otimizar a utilização de recursos.

Como funciona

O auto scaling horizontal ajusta dinamicamente o número de réplicas com base nos limiares de métricas configurados.

  • Cálculo das réplicas alvo: O sistema calcula a contagem de réplicas alvo (desiredReplicas) usando a razão entre o valor atual da métrica (currentMetricValue) e o valor desejado da métrica (desiredMetricValue), multiplicada pela contagem atual de réplicas (currentReplicas).

    • Fórmula: desiredReplicas = ceil[currentReplicas × ( currentMetricValue / desiredMetricValue )]

    • Exemplo: Com 2 réplicas atuais e o QPS Threshold of Individual Instance definido como 10, quando o QPS médio por réplica sobe para 23, as réplicas alvo tornam-se 5 = ceil[2 * (23/10)]. Se o QPS médio cair para 2, as réplicas alvo tornam-se 1 = ceil[5 * (2/10)].

    • Se houver múltiplas métricas configuradas, o sistema calcula as réplicas alvo para cada métrica e utiliza o valor máximo como alvo final.

  • Lógica de acionamento: Se as réplicas alvo calculadas excederem as réplicas atuais, o sistema aciona o scale-out. Se as réplicas alvo ficarem abaixo das réplicas atuais, o sistema aciona o scale-in.

    Importante

    Para evitar operações frequentes de dimensionamento devido a flutuações nas métricas, o sistema aplica uma margem de tolerância de 10% aos limiares. Por exemplo, com um limiar de QPS de 10, o scale-out é acionado apenas quando o QPS excede consistentemente 11 (10 × 1,1). Isso significa:

    • Flutuações de QPS entre 10 e 11 não acionam o scale-out.

    • O scale-out ocorre somente quando o QPS permanece estável em 11 ou mais.

    Esse mecanismo reduz alterações desnecessárias de recursos e melhora a estabilidade do sistema e a relação custo-benefício.

  • Execução atrasada: As operações de dimensionamento suportam um mecanismo de atraso para evitar ajustes frequentes causados por breves flutuações de tráfego.

Guia do usuário

Configure políticas de auto scaling horizontal usando o PAI console ou o cliente eascmd.

Ativar ou atualizar o auto scaling

Console

  1. Faça login no PAI console. Selecione uma região na parte superior da página. Em seguida, selecione o workspace desejado e clique em Elastic Algorithm Service (EAS).

  2. Na lista de serviços, clique em nome do serviço alvo para acessar a página de detalhes do serviço.

  3. Na aba Auto Scaling, na seção Auto Scaling, clique em Enable Auto Scaling ou Update.

    imageimage

  4. Na caixa de diálogo Auto Scaling Settings, configure os parâmetros.

Descrição dos parâmetros
  • Configuração básica

    Parâmetro

    Descrição

    Recomendações e avisos de risco

    Minimum Replicas

    Número mínimo de réplicas para operações de scale-in. Valor mínimo: 0.

    Ambiente de produção: Para serviços que exigem disponibilidade contínua, defina este valor como 1 ou superior.

    Importante

    Definir este valor como 0 remove todas as réplicas durante períodos de tráfego zero. Novas solicitações enfrentarão todo o atraso de cold start (de dezenas de segundos a vários minutos), tornando o serviço indisponível. Serviços que usam um gateway dedicado não suportam o valor 0.

    Maximum Replicas

    Número máximo de réplicas para operações de scale-out. Valor máximo: 1000.

    Defina este valor com base no pico de tráfego estimado e na cota de recursos da conta para evitar que picos inesperados de tráfego causem estouro de custos.

    General Scaling Metrics

    Métricas de desempenho integradas usadas para acionar o dimensionamento.

    • QPS Threshold of Individual Instance: Defina com base nos resultados de testes de estresse, geralmente entre 70% e 80% do desempenho ideal de uma única réplica.

      Importante

      Para definir o limiar de QPS de réplica única com um valor decimal, use o cliente (eascmd) e configure o campo qps1k.

    • CPU Utilization Threshold: Um valor muito baixo desperdiça recursos; um valor muito alto aumenta a latência das solicitações. Defina com base nas métricas de tempo de resposta (RT).

    • GPU utilization threshold: Configure este valor com base nas métricas de RT.

    • Asynchronous Queue Length: Aplica-se apenas a serviços assíncronos. Defina este valor com base no tempo médio de processamento de tarefas e na latência aceitável. Para obter mais informações, consulte Configurar auto scaling horizontal para serviços de inferência assíncrona.

    Custom Scaling Metric

    É possível relatar métricas personalizadas e usá-las para auto scaling. Para obter mais informações, consulte Métricas personalizadas de monitoramento e dimensionamento.

    Indicado para cenários complexos em que as métricas integradas não atendem aos requisitos de negócios.

  • Configuração avançada

    Parâmetro

    Descrição

    Recomendações e avisos de risco

    Scale-out Starts in

    Janela de observação para decisões de scale-out. Após o acionamento do scale-out, o sistema observa as métricas durante este período. Se os valores das métricas caírem abaixo do limiar, o scale-out será cancelado. Unidade: segundos.

    Padrão: 0 segundos (scale-out imediato). Aumente este valor (por exemplo, 60 segundos) para evitar dimensionamentos desnecessários causados por picos transitórios de tráfego.

    Scale-in Starts in

    Janela de observação para decisões de scale-in — o parâmetro chave para evitar instabilidade no serviço. O scale-in ocorre somente após as métricas permanecerem abaixo do limiar durante toda esta duração. Unidade: segundos.

    Padrão: 300 segundos. Isso protege contra eventos frequentes de scale-in decorrentes de flutuações de tráfego. Não defina um valor muito baixo para manter a estabilidade do serviço.

    Scale-in to 0 Instance Starts in

    Quando Minimum Replicas é 0, este parâmetro define o tempo de espera antes que a contagem de réplicas seja reduzida para 0.

    Atrasa o desligamento completo do serviço, fornecendo um tempo de buffer para possível recuperação de tráfego.

    Scale-from-Zero Replica Count

    Contagem de réplicas a serem adicionadas quando o serviço faz scale-out a partir de 0 réplicas.

    Defina um valor que suporte a explosão inicial de tráfego e reduza a indisponibilidade do serviço durante o cold start.

Client

Antes de executar comandos, certifique-se de ter baixado e autenticado o cliente. Tanto a ativação quanto a atualização utilizam o comando autoscale. Defina a política usando o parâmetro -D ou um arquivo de configuração JSON.

  • Formato do parâmetro:

    # Format: eascmd autoscale [region]/[service_name] -D[attr_name]=[attr_value]
    # Example: Set the minimum number of replicas to 2, the maximum to 5, and the QPS threshold to 10.
    eascmd autoscale cn-shanghai/test_autoscaler -Dmin=2 -Dmax=5 -Dstrategies.qps=10
    # Example: Set the scale-in delay to 100 seconds.
    eascmd autoscale cn-shanghai/test_autoscaler -Dbehavior.scaleDown.stabilizationWindowSeconds=100
  • Formato do arquivo de configuração:

    # Step 1: Create a configuration file (for example, scaler.json).
    # Step 2: Run the command: eascmd autoscale [region]/[service_name] -s [desc_json]
    # Example
    eascmd autoscale cn-shanghai/test_autoscaler -s scaler.json
Exemplo de configuração

O exemplo do scaler.json inclui opções comuns de configuração:

scaler.json

{
    "min": 1,
    "max": 2,
    "behavior": {
        "onZero": {
            "interceptTraffic": false,
            "scaleDownGracePeriodSeconds": 700,
            "scaleUpActivationReplicas": 2
        },
        "scaleDown": {
            "stabilizationWindowSeconds": 20
        },
        "scaleUp": {
            "stabilizationWindowSeconds": 10
        }
    },
    "scaleStrategies": [
        {
            "metricName": "queue[backlog]",
            "threshold": 10
        },
        {
            "metricName": "qps",
            "threshold": 1
        },
        {
            "metricName": "cpu",
            "threshold": 80
        },
        {
            "metricName": "gpu[util]",
            "threshold": 60
        }
    ]
}
Descrição dos parâmetros

Parâmetro

Descrição

min

Número mínimo de réplicas.

max

Número máximo de réplicas.

scaleStrategies

Métricas e limiares de dimensionamento.

  • qps: QPS Threshold of Individual Instance.

    Importante

    A métrica QPS Threshold of Individual Instance suporta valores decimais com até 2 casas decimais (por exemplo, 1,25). Para definir um valor decimal, use o campo qps1k. Por exemplo, definir qps1k como 1250 aciona o scale-out quando o QPS médio de réplica única excede 1,25. Exemplo de configuração:

    {
        "min": 1,
        "max": 2,
        "scaleStrategies": [
            {
                "metricName": "qps1k",
                "threshold": 1250
            }
        ]
    }
  • cpu: CPU Utilization Threshold.

  • gpu[util]: GPU Usage Threshold.

  • queue[backlog]: Asynchronous Queue Length.

behavior.scaleUp.stabilizationWindowSeconds

Corresponde ao Atraso de Scale-out no console.

behavior.scaleDown.stabilizationWindowSeconds

Corresponde ao Atraso de Scale-in no console.

Desativar o auto scaling

Client

  • Formato do comando

    eascmd autoscale rm [region]/[service_name]
  • Exemplo

    eascmd autoscale rm cn-shanghai/test_autoscaler

Melhores práticas

Configuração específica por cenário

  • Inferência online intensiva em CPU: Configure tanto o CPU Utilization Threshold quanto o QPS Threshold Per Replica. A utilização da CPU reflete o consumo de recursos; o QPS reflete a carga de negócios. Combinar essas métricas permite um dimensionamento preciso.

  • Inferência online intensiva em GPU: Concentre-se no Limiar de GPU Utilization. Quando as unidades de computação da GPU saturarem, faça scale-out para lidar com mais tarefas simultâneas.

  • Processamento de tarefas assíncronas: Use o Asynchronous Queue Length como métrica principal. Quando as tarefas acumuladas excederem o limiar, o scale-out aumenta a capacidade de processamento e reduz os tempos de espera.

Práticas de estabilidade

  • Evite dimensionar para zero: Para serviços de produção síncronos, sempre defina Minimum Replicas como 1 ou superior para garantir disponibilidade contínua e baixa latência.

  • Defina atrasos razoáveis: Use o Atraso de Scale-in para evitar instabilidade no serviço devido a flutuações normais de tráfego. O valor padrão de 300 segundos atende à maioria dos cenários.

Perguntas frequentes

Por que meu serviço não faz scale-out quando o limiar é atingido?

Os possíveis motivos incluem:

  • Cota de recursos insuficiente: A cota disponível de vCPU ou GPU em sua conta para a região atual está esgotada.

  • Atraso de scale-out ativo: Se o Atraso de Scale-out estiver configurado, o sistema aguarda esse período para confirmar o aumento sustentado do tráfego.

  • Falha na verificação de integridade da réplica: As novas réplicas criadas pelo scale-out falharam nas verificações de integridade, causando falha na operação.

  • Limite máximo de réplicas atingido: A contagem atual de réplicas atingiu o limite configurado em Maximum Replicas.

Por que meu serviço faz scale-in e scale-out frequentemente?

Isso geralmente resulta de uma configuração inadequada da política de dimensionamento:

  • Limiar muito sensível: Um limiar definido muito próximo do nível normal de carga faz com que pequenas flutuações acionem eventos de dimensionamento.

  • Atraso de scale-in muito curto: Períodos de atraso curtos fazem o sistema reagir exageradamente a breves quedas de tráfego, acionando scale-ins desnecessários. Quando o tráfego se recupera, outro scale-out é acionado imediatamente. Aumente o Atraso de Scale-in.

Referências