Todos os produtos
Search
Central de documentação

Platform For AI:Horizontal auto scaling feature

Última atualização: Sep 22, 2026

O dimensionamento automático horizontal ajusta as réplicas do serviço com base em métricas em tempo real para manter o desempenho e otimizar o uso de recursos.

Como funciona

O dimensionamento automático horizontal ajusta dinamicamente o número de réplicas com base nos limiares das métricas configuradas.

  • Cálculo de réplicas de destino: O sistema calcula o número de réplicas de destino (desiredReplicas) com base na proporção entre o valor atual da métrica (currentMetricValue) e o valor desejado da métrica (desiredMetricValue), multiplicada pelo número 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, o número de réplicas de destino passa a ser 5 = ceil[2 * (23/10)]. Se o QPS médio cair para 2, o número de réplicas de destino passa a ser 1 = ceil[5 * (2/10)].

    • Quando há várias métricas configuradas, o sistema calcula o número de réplicas de destino para cada métrica e usa o valor máximo como destino final.

  • Lógica de acionamento: Quando o número calculado de réplicas de destino excede o número de réplicas atuais, o sistema aciona o scale-out. Quando o número de réplicas de destino fica abaixo do número de réplicas atuais, o sistema aciona o scale-in.

    Importante

    Para evitar operações de dimensionamento frequentes 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 sistema aciona o scale-out apenas quando o QPS excede consistentemente 11 (10 × 1,1). Isso significa que:

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

    • O sistema aciona o scale-out apenas quando o QPS permanece estável em 11 ou mais.

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

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

Guia do usuário

Configure as políticas de dimensionamento automático horizontal no PAI console ou no cliente eascmd.

Ativar ou atualizar o dimensionamento automático

Console

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

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

  3. Na guia 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-o como 1 ou superior.

    Importante

    Definir este valor como 0 remove todas as réplicas em períodos de tráfego zero. Novas solicitações estão sujeitas ao atraso total 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 0.

    Maximum Replicas

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

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

    General Scaling Metrics

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

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

      Importante

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

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

    • GPU utilization threshold: Configure-o com base nas métricas de RT.

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

    Custom Scaling Metric

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

    Adequado para cenários complexos em que as métricas integradas não atendem aos requisitos do negócio.

  • 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 sistema cancela o scale-out. Unidade: segundos.

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

    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 apenas após as métricas permanecerem abaixo do limiar durante todo esse período. Unidade: segundos.

    Padrão: 300 segundos. Isso protege contra eventos frequentes de scale-in devido a 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 o número de réplicas seja reduzido para 0.

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

    Scale-from-Zero Replica Count

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

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

Cliente

Antes de executar comandos, certifique-se de que o o cliente foi baixado e autenticado. Para ativar e atualizar, use o comando autoscale. Defina a política por meio do parâmetro -D ou de 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 de configuração comuns:

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 Scale-out Delay no console.

behavior.scaleDown.stabilizationWindowSeconds

Corresponde ao Scale-in Delay no console.

Desativar o dimensionamento automático

Cliente

  • Formato do comando

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

    eascmd autoscale rm cn-shanghai/test_autoscaler

Melhores práticas

Configuração específica para cenários

  • Inferência online com uso intensivo de CPU: Configure tanto o CPU Utilization Threshold quanto o QPS Threshold Per Replica. O uso da CPU reflete o consumo de recursos; o QPS reflete a carga do negócio. Combinar essas métricas permite um dimensionamento preciso.

  • Inferência online com uso intensivo de GPU: Concentre-se no limiar de GPU Utilization. Quando as unidades de computação da GPU saturam, faça o 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 excedem 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 o Minimum Replicas como 1 ou superior para garantir disponibilidade contínua e baixa latência.

  • Defina atrasos razoáveis: Use o Scale-in Delay 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 na sua conta para a região atual está esgotada.

  • Atraso de scale-out ativo: Se o Scale-out Delay 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 réplicas recém-adicionadas pelo scale-out falharam nas verificações de integridade, causando a falha da operação.

  • Máximo de réplicas atingido: O número atual de réplicas atingiu o limite configurado de Maximum Replicas.

Por que meu serviço faz scale-in e scale-out com frequência?

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

  • Limiar muito sensível: Um limiar definido muito próximo ao 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 levam o sistema a reagir exageradamente a breves quedas de tráfego, acionando operações de scale-in desnecessárias. Quando o tráfego se recupera, o sistema aciona outro scale-out imediatamente. Aumente o Scale-in Delay.

Referências