Todos os produtos
Search
Central de documentação

Platform For AI:Teste de estresse de serviço

Última atualização: Sep 07, 2026

O Elastic Algorithm Service (EAS) oferece testes de estresse para serviços LLM e de uso geral para ajudar na avaliação do desempenho. Crie tarefas de teste de estresse com um clique no console ou configure modos de teste flexíveis usando o cliente EASCMD.

Comparação de recursos

O EAS disponibiliza dois tipos de teste de estresse: para serviços LLM e para serviços de uso geral. Escolha a solução adequada com base no tipo de serviço e nos objetivos do teste.

Item

Teste de estresse de serviço LLM

Teste de estresse de serviço de uso geral

Casos de uso

Otimizado para modelos grandes de linguagem; avalia velocidade de resposta e desempenho na geração de tokens.

Adequado para todos os serviços baseados em HTTP/HTTPS.

Método de criação

Apenas PAI console

PAI console: Suporta apenas o modo auto.Cliente EASCMD: Suporta os modos auto, scan e manual.

Principais métricas

Inclui todas as métricas de uso geral, além de métricas específicas para LLM: tempo até o primeiro token (TTFT), tempo por token de saída (TPOT) e tokens por segundo (TPS).

Abrange métricas como consultas por segundo (QPS) e tempo de resposta (RT).

Pré-requisitos

  • Serviço EAS implantado e disponível

    • Pelo menos um serviço online do EAS implantado na região e no workspace de destino.

    • O status do serviço deve ser Running e ele deve estar apto para invocação.

  • Requisitos para teste de estresse de serviço LLM

    • O serviço utiliza um mecanismo de inferência compatível com a API OpenAI, como vLLM, SGLang, LMDeploy ou BladeLLM.

    • O serviço expõe o endpoint /v1/completions ou /v1/chat/completions.

    • Os dados de teste incluem o campo "stream": true para habilitar requisições em streaming e permitir a coleta de métricas relacionadas a tokens, como TTFT e TPOT.

Início rápido

Este exemplo testa o estresse de um serviço LLM Qwen3-8B usando cenários específicos para LLM e de uso geral. Para implantar o modelo, consulte Deploy large language models.

Nota

Este é um guia de início rápido. Não execute testes de estresse de uso geral em serviços LLM em produção.

Etapa 1: Criar uma tarefa de teste de estresse

  1. Faça login no PAI console e selecione a região de destino no topo da página.

  2. No painel de navegação à esquerda, clique em Elastic Algorithm Service (EAS), selecione o workspace desejado e acesse a página do EAS.

  3. Acesse a aba Benchmark Task e clique em Create Stress Testing Task.

  4. Configure os parâmetros abaixo e mantenha os padrões para os demais. Referências completas de parâmetros: LLM configuration details e General-purpose scenario configuration details.

    Teste de estresse de serviço LLM

    Parâmetro

    Descrição

    Basic Information

    Service

    Selecione o serviço a ser testado e escolha LLM Service.

    Service Endpoint

    Selecione Chat.

    Stress Testing URL

    Preenchido automaticamente após a seleção de uma interface de serviço.

    Model ID

    ID do modelo no ModelScope ou Hugging Face. Insira Qwen/Qwen3-8B.

    Stress Testing Configurations

    Data Type

    Selecione Public Dataset.

    Dataset

    ShareGPT.

    Test Mode

    Selecione Fixed Concurrency Test.

    Number of Request Samples

    200.

    Teste de estresse de serviço de uso geral

    Nota

    O console de teste de estresse tem um tempo limite fixo de requisição de 20 segundos. Se o relatório exibir o código de retorno 512, isso indica timeout. O console não suporta configurações personalizadas de tempo limite.

    Parâmetro

    Descrição

    Basic Information

    Service

    Serviço a ser testado.

    Stress Testing URL

    URL de invocação do serviço. Forneça o caminho completo da interface, como /api/predict/<service_name>/v1/chat/comletions.

    Stress Testing Configurations

    Data Source

    Selecione Single Data Entry.

    Single Data Entry

    Execute echo -n '{"model": "Qwen3-8B", "messages": [{"role": "user", "content": "Hello!"}], "max_tokens": 1024}' | base64 para obter a codificação Base64:

    eyJtb2RlbCI6ICJRd2VuMy04QiIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9XSwgIm1heF90b2tlbnMiOiAxMDI0fQ==

Etapa 2: Visualizar detalhes do teste de estresse

  1. Visualize dados de monitoramento em tempo real: Quando o Status da tarefa for Testing in Progress, clique no nome da tarefa para abrir o painel em tempo real. Os gráficos incluem Real-time response time (TP50/TP90/TP99/TP100/AVG), Real-time return codes, Real-time traffic (RECEIVE/SEND) e Real-time queries per second (QPS).

  2. Visualize o relatório de teste de estresse. Quando o Status da tarefa for Completed, clique no nome da tarefa para ver o relatório.

    O relatório inclui Basic Information, Stress Testing Configurations, Test Result e Test Monitoring. Definições das métricas: Stress testing task monitoring metrics.

Etapa 3: Gerenciar tarefas de teste de estresse

Gerenciar tarefas de teste de estresse no console

Na aba Benchmark Task, visualize a lista de tarefas criadas e realize operações como Enable, Clone, Copy Report e Delete.

Gerenciar tarefas de teste de estresse usando o cliente EASCMD

  • Visualizar a lista de tarefas de teste de estresse

    Use o comando bench list para ver as tarefas criadas pelo usuário atual. O exemplo abaixo mostra o formato do comando para Windows 64 bits.

    eascmdwin64.exe bench ls

    A seguir está um exemplo de saída.

    [RequestId]: 7F953F8E-8897-5785-808A-CA648302****
    +-------------------------+--------------------------+-------------+----------------+---------+---------------------+
    |        TASKNAME         |          TASKID          |   REGION    | AVAILABLEAGENT | STATUS  |     CREATETIME      |
    +-------------------------+--------------------------+-------------+----------------+---------+---------------------+
    | benchmark-***-test-**** | eas-b-ql470xog6qeh25**** | cn-shanghai |              0 | Stopped | 2022-06-17 17:58:01 |
    | benchmark-***-test-**** | eas-b-bdnzvwq0z0h3xq**** | cn-shanghai |              2 | Running | 2022-06-20 12:18:54 |
    +-------------------------+--------------------------+-------------+----------------+---------+---------------------+
  • Visualizar detalhes da tarefa de teste de estresse

    Use o comando bench desc para ver os detalhes de uma tarefa específica. O exemplo a seguir apresenta o formato do comando para Windows 64 bits.

    eascmdwin64.exe bench desc [benchmark_task_name]

    Substitua [benchmark_task_name] pelo nome da tarefa de teste de estresse.

    A seguir está um exemplo de saída.

    +----------------+------------------------------------------------------------------------------+
    |     TaskName   | benchmark-***-test-b514                                                      |
    |     TaskId     | eas-b-bdnzvwq0z0h3xq****                                                     |
    |    ServiceName | xgb_test                                                                     |
    |         Region | cn-shanghai                                                                  |
    |   DesiredAgent | 2                                                                            |
    | AvailableAgent | 2                                                                            |
    |         Status | Running                                                                      |
    |        Message | Benchmark task is running                                                    |
    |     CreateTime | 2021-10-20 12:38:35                                                          |
    |     UpdateTime | 2021-10-20 12:38:45                                                          |
    |         Config | {                                                                            |
    |                |   "base": {                                                                  |
    |                |     "agentCount": 2,                                                         |
    |                |     "concurrency": 40,                                                       |
    |                |     "duration": 1200,                                                        |
    |                |     "requestCount":                                                          |
    |                | 922337203685477****,                                                         |
    |                |   },                                                                         |
    |                |  ...                                                                         |
    |                | }                                                                            |
    +----------------+------------------------------------------------------------------------------+
  • Ativar visualização em tempo real para uma tarefa de teste de estresse

    Execute o comando bench visualize para ativar a visualização em tempo real. Após a execução, uma página de monitoramento fornecida por um servidor web será iniciada em 127.0.0.1. O exemplo abaixo mostra o formato do comando para Windows 64 bits.

    eascmdwin64.exe bench visualize [benchmark_task_name]

    Substitua [benchmark_task_name] pelo nome da tarefa de teste de estresse.

    A seguir está um exemplo de saída.

    [OK] Click the link http://127.0.0.1:18734/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C.
    Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command:
    eascmd -c [config_file] bench visualize benchmark-xgb-test-b514

    Abra o link http://127.0.0.1:18734/eas-benchmark/statsview no navegador para visualizar os dados em tempo real.

  • Obter o relatório de teste de estresse

    Quando o status da tarefa for Stopped, o teste estará concluído. O relatório é salvo no OSS. Use o comando bench report para recuperar a URL do relatório. O exemplo a seguir mostra o formato do comando para Windows 64 bits.

    eascmdwin64.exe  bench report [benchmark_task_name]

    Substitua [benchmark_task_name] pelo nome da tarefa de teste de estresse.

    A seguir está um exemplo de saída.

    [OK] Benchmark task benchmark-demo-test-c7eb report url: http://eas-benchmark.oss-cn-chengdu.aliyuncs.com/summary/benchmark-demo-test-c7eb-10004.html

    Abra o link após url no navegador para visualizar o relatório, conforme ilustrado na figura a seguir.image.png

  • Modificar dinamicamente o número de réplicas de clientes e a concorrência

    No modo manual, use o comando bench update para ajustar dinamicamente o número de réplicas e a concorrência. O exemplo abaixo apresenta o formato do comando para Windows 64 bits.

    eascmdwin64.exe bench update [benchmark_task_name] -Doptional.concurrency=<attr_value> -Doptional.agentCount=<attr_value>

    O parâmetro <attr_value> representa o valor específico. Exemplo de comando:

    eascmdwin64.exe bench update benchmark-demo-b99c -Doptional.concurrency=2 -Doptional.agentCount=1

    A seguir está um exemplo de saída.

    [RequestId]: 9920C672-4D41-5CC4-8EC0-C690F76EB2BA
    [OK] Running [TaskName: benchmark-demo-b99c, DesiredAgent:1, AvailableAgent: 1, Message: Benchmark task is Updating]
    [OK] Benchmark task benchmark-demo-b99c was updated successfully
  • Parar uma tarefa de teste de estresse

    Use o comando bench stop para interromper uma tarefa em execução. O exemplo a seguir mostra o formato do comando para Windows 64 bits.

    eascmdwin64.exe bench stop [benchmark_task_name]

    Substitua [benchmark_task_name] pelo nome da tarefa de teste de estresse.

    A seguir está um exemplo de saída.

    Are you sure to stop the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Task [benchmark-***-test-b514] is stopping
    [OK] [Agnet: 0/1]: Benchmark task is Running
    [OK] [Agnet: 0/1]: Benchmark task is Stopped
    [OK] Benchmark task is stopped

    Se a visualização em tempo real estiver ativa ao parar a tarefa, o sistema exibirá o relatório no terminal onde o comando foi executado. Também é possível usar o comando bench report para obter um relatório HTML mais detalhado com gráficos.

  • Iniciar uma tarefa de teste de estresse

    Use o comando bench start para iniciar uma tarefa parada. O exemplo abaixo mostra o formato do comando para Windows 64 bits.

    eascmdwin64.exe bench start [benchmark_task_name]
    Nota

    A diferença entre este comando e o comando bench create é que, ao reiniciar uma tarefa de teste de estresse com este comando, uma nova rodada de testes começa com base na última configuração atualizada da tarefa.

    Substitua [benchmark_task_name] pelo nome da tarefa de teste de estresse.

    A seguir está um exemplo de saída do sistema.

    Are you sure to start the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Task [benchmark-***-test-b514] is starting
    [OK] [Agnet: 0/1]: Succeed to start benchmark master
    [OK] [Agnet: 1/1]: Benchmark task is Running
    [OK] Benchmark task is Running
    [OK] Click the link http://127.0.0.1:18947/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C.
    Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command:
    eascmd -c [config_file] bench visualize benchmark-xgb-test-b514
  • Excluir uma tarefa de teste de estresse

    Após a conclusão de uma tarefa, o controlador VPC retém o registro com base no status final. As regras de retenção estão descritas na tabela a seguir.

    Status final

    Período de retenção

    Stopped

    48 horas.

    CreateFailed, UpdateFailed, Terminated ou Error

    10 minutos.

    O sistema exclui automaticamente a tarefa após o período de retenção.

    Também é possível usar o comando bench delete para excluir manualmente uma tarefa de teste de estresse. O formato do comando é o seguinte.

    eascmdwin64.exe bench delete [benchmark_task_name]

    Substitua [benchmark_task_name] pelo nome da tarefa de teste de estresse.

    A seguir está um exemplo de saída.

    Are you sure to delete the benchmark task [benchmark-***-test-b514] in [cn-shanghai]? [Y/n]
    [OK] Benchmark task benchmark-***-test-b514 is Deleting
    [OK] Benchmark task was deleted successfully

Detalhes da configuração LLM

Informações básicas

Parâmetro

Descrição

Service

Selecione o serviço a ser testado e escolha LLM Service.

Service Endpoint

Apenas estas duas interfaces OpenAI são suportadas:

  • Completions: conclusão de turno único. A interface de requisição é /v1/completions.

  • Chat: conversa multi-turno. A interface de requisição é /v1/chat/completions.

Stress Testing URL

Preenchido automaticamente após a seleção de uma interface de serviço.

Model ID

Obrigatório. ID do modelo no ModelScope ou Hugging Face, usado para carregar o tokenizer correto para contagem de tokens. No ModelScope, o ID do modelo corresponde ao caminho sob o nome do modelo (por exemplo, Qwen/Qwen2.5-7B-Instruct).

Model Name

Opcional. Substitui o ID do modelo no corpo da requisição. Se estiver vazio, o ID do modelo será utilizado.

Selecionar um tipo de dado

Data Type

Descrição

Public Dataset

Use o conjunto de dados ShareGPT público para o teste de estresse.

  • Dataset: Apenas ShareGPT é suportado.

  • Output Length: Controla o comprimento do texto gerado. Se deixado em branco, a saída não será truncada. Configure o comprimento de saída para testar a estabilidade e o desempenho do serviço LLM sob diferentes cargas.

Custom Dataset

Configure um conjunto de dados personalizado conforme seu cenário específico:

Importante

Requisitos de formato de dados:

  • Os dados de requisição para teste LLM devem incluir o parâmetro "stream": true para construir requisições em streaming e permitir a coleta de métricas como TTFT e TPOT.

  • Cada JSON de requisição deve ser escrito em uma única linha, sem quebras de linha ou retornos de carro (mesmo que haja apenas uma requisição). Caso contrário, a análise falhará.

  • Múltiplas requisições devem ser separadas por quebras de linha.

  • Data Source: Carregue um arquivo de dados personalizado para o teste a partir destas fontes:

    • Single Data Entry: Insira uma única entrada de dados de teste na caixa de texto Single Data. O formato deve ser uma string codificada em Base64.

    • Data Address: Insira o caminho HTTP da fonte de dados de teste na caixa de texto Data Address. Arquivos únicos ou ZIP são suportados. Arquivos ZIP são descompactados automaticamente após o download.

    • OSS Object: Obtenha o arquivo de teste configurando um caminho do Object Storage Service (OSS).

    • Upload Local File: Siga as instruções do console para carregar um arquivo local de teste em um caminho do OSS e obtê-lo a partir do OSS.

  • Split File Data by Line: Disponível quando Data Source está definido como Data Address, OSS File ou Upload from Local.

    • Ao ativar esta opção, cada linha do arquivo de teste é usada como uma requisição independente.

    • Quando desativada, todo o conteúdo do arquivo é tratado como uma única requisição.

      Nota

      Para um exemplo de configuração de arquivo de teste, consulte benchmark_demo.json. Cada entrada de dados no arquivo representa uma requisição real de usuário em formato JSON. Recomendamos usar primeiro o recurso online debugging para confirmar se o formato de uma única entrada de dados está correto.

Simulation Data

  • Data Generation Mode: Apenas Uniform Distribution é suportado.

  • Input Tokens: Faixa de comprimento dos tokens de entrada. Valor mínimo: 10; máximo: 10.000. Padrão: 1.024.

  • Output Tokens: Faixa de comprimento dos tokens de saída. Valor mínimo: 10; máximo: 10.000. Padrão: 128.

Selecionar um modo de teste

Três modos de teste são suportados:

  • Fixed Concurrency Test: Define um número fixo de usuários concorrentes. Adequado para testar o desempenho do sistema sob um nível específico de concorrência.

  • Fixed Request Rate Test: Estabelece uma taxa fixa de requisições. Ideal para avaliar o desempenho do sistema a uma taxa específica.

  • Extreme Throughput Test: Envia todas as requisições simultaneamente para determinar a taxa máxima (QPS) que o serviço de inferência consegue processar. Projetado para testar os limites do sistema.

Nos modos Fixed Concurrency Test e Fixed Request Rate Test, é possível ativar o Continuous Test.

  • Se você ativar o Continuous Test, a tarefa será executada até o fim da duração do teste, independentemente do Number of Request Samples.

  • Caso desative o Continuous Test, a tarefa parará após completar o Number of Request Samples especificado ou atingir a Maximum Duration (s).

As configurações de parâmetros para os diferentes modos de teste são:

Modo de Teste

Configurações de Parâmetros

Fixed Concurrency Test

  • Concurrency: Simula o número de usuários concorrentes. Faixa de valores: [1, 500].

  • Maximum Duration (s): Duração do teste de estresse em segundos. Padrão: 300. Mínimo: 30.

  • Number of Request Samples: Não necessário quando o Continuous Test está ativado. Representa o número de requisições enviadas durante o teste. Faixa de valores: [100, 1.000].

Fixed Request Rate Test

Define uma taxa fixa de requisições para testar o desempenho do sistema. Configure os seguintes parâmetros:

  • Request Rate: Número de requisições enviadas por segundo.

  • Maximum Concurrency: Número de usuários concorrentes a simular.

  • Maximum Duration (s): Duração do teste de estresse em segundos. O valor padrão é 300 e o mínimo é 30.

  • Number of Request Samples: Não precisa ser definido quando o Continuous Test está ativado. Representa o número de requisições enviadas durante o teste. O valor deve estar na faixa de [100, 1.000].

Extreme Throughput Test

  • Maximum Duration (s): Duração do teste de estresse em segundos. O valor padrão é 300 e o mínimo é 30.

  • Number of Request Samples: Número de requisições enviadas durante o teste. O valor deve estar na faixa de [100, 1.000].

Mais configurações

Parâmetro

Descrição

HTTP Header

Um par chave-valor. Por exemplo:

  • Passar informações de autenticação: Authorization: EAS_TOKEN

  • Definir o formato de dados do corpo da requisição: Content-Type: application/json

Burstiness

  • Valor padrão: 1. Faixa válida: 0,1 a 200, com granularidade de 0,1.

  • Controla a distribuição temporal das requisições; válido apenas no modo de taxa de requisição fixa. Padrão 1 (distribuição de Poisson). Outros valores usam distribuição Gamma: menor = mais irregular, maior = mais uniforme.

Random Seed

Valor padrão: 0. Tipo de dado inteiro. Faixa de valores: 0-4.294.967.295 (2**32-1).

Ignore EOS

Ativar Ignore EOS faz com que o modelo ignore o token End-of-Sequence (EOS) ao gerar texto, forçando a geração até atingir o comprimento máximo predefinido.

Detalhes da configuração de cenário de uso geral

Parâmetros do console

Parâmetro

Descrição

Basic Information

Service

Nome do serviço a ser testado.

Stress Testing URL

URL de invocação do serviço.

Stress Testing Configurations

Data Source

Configure os dados de teste usando Single Data Entry, Data Address, OSS Object ou Upload Local File.

  • Formato dos dados de teste: Depende da definição do modelo e da implementação do processador.

    Nota

    Single Data deve ser uma string codificada em Base64.

    • Para dados não estruturados, como voz, imagens ou texto, carregue diretamente o arquivo como dados de requisição de teste.

    • Para dados estruturados, como TFRequest, construa a requisição usando o SDK do EAS (Model service warm-up) e carregue a saída binária como um arquivo.

  • Arquivo de teste de estresse:

    • Arquivos únicos ou ZIP são suportados. Arquivos ZIP são descompactados automaticamente após o download.

    • Tipo de arquivo: Suporta formatos como .txt, .jpg, .bin e .zip, dependendo dos requisitos de negócio do serviço.

Split File Data by Line

Disponível quando Data Source está definido como Data Address, OSS Object ou Upload Local File.

Se ativado, o arquivo de teste carregado é dividido por linha, e cada linha é usada como uma entrada de dados. Caso contrário, todo o conteúdo do arquivo é usado como uma única entrada.

Maximum Duration (s)

Duração do teste de estresse em segundos. Padrão: 300 segundos.

Maximum QPS

QPS máximo permitido (requisições por segundo). Padrão: 10.000.

Maximum Response Time (ms)

Tempo de resposta máximo permitido (RT) em milissegundos. Se esse limiar for excedido, o QPS será ajustado automaticamente até que o RT em tempo real atenda às expectativas.

HTTP Header

Configuração de cabeçalho de requisição em pares chave-valor. Por exemplo:

  • Passar informações de autenticação: Authorization: EAS_TOKEN

  • Definir o formato de dados do corpo da requisição: Content-Type: application/json

Criar usando o cliente EASCMD

Use bench create para criar uma tarefa de teste de estresse. Para configuração do cliente, consulte Download and authenticate the client. Após a criação, use a URL retornada para visualizar o monitoramento em tempo real. Exemplo para Windows 64 bits:

eascmdwin64.exe bench create [bench_desc_json]

O parâmetro bench_desc_json é um arquivo de configuração JSON. Exemplos abaixo; referência completa de parâmetros: JSON parameter descriptions.

Teste de estresse único

{
    "service": {
        "serviceName": "xgb_test"
    },
    "data": {
        "content": "W1sxLDAsMCwwLDEsMSwwLDEsMCwxLDEsMCwwLDEsMCwxLDAsMSwwLDAsMSwxLDEsMCwxLDEsMCwwLDAsMSwxLDEsMCwxLDEsMSwxLDAsMSwxLDEsMCwxLDAsMCwwLDEsMSwwLDAsMCwxLDAsMSwwLDEsMCwwLDEsMCwwLDEsMCwxLDAsMCwxLDAsMCwwLDAsMSwwLDEsMCwxLDAsMCwxLDEsMSwwLDAsMSwwLDAsMCwwLDEsMSwxLDAsMSwxLDAsMCwxLDAsMSwwLDEsMSwxLDEsMCwxLDAsMCwxLDEsMSwxLDAsMCwwLDEsMSwwXV0K"
    }
}

Teste com arquivo OSS

Use path para especificar múltiplos arquivos OSS como dados de teste.

Para configurar várias entradas de dados de teste em lote, compacte múltiplos arquivos de dados de requisição em um pacote ZIP e defina o path como oss://XX.zip.

{
    "service": {
        "serviceName": "xgb_test"
    },
    "data": {
        "path": "oss://examplebucket/test1.bin,oss://examplebucket/test2.bin"
    }
}

A seguir está um exemplo de saída.

[RequestId]: DE240637-4976-59AF-A28C-BAA55C0A****
[OK] Task [benchmark-xgb-test-b514] is creating
[OK] [Agnet: 0/1]: Succeed to start benchmark master
[OK] [Agnet: 0/1]: Succeed to start benchmark master
[OK] [Agnet: 1/1]: Benchmark task is Running
[OK] Benchmark task is Running
[OK] Click the link http://127.0.0.1:18222/eas-benchmark/statsview to observe realtime visualization details, you can turn it off with CTRL+C.
Turning off will not interrupt the benchmark test task, and you can reopen it by the visualize command:
eascmd -c [config_file] bench visualize benchmark-xgb-test-b514

Modos de teste de estresse

O teste de estresse de serviço de uso geral suporta os três modos a seguir:

  • Modo auto: O controlador VPC eas-benchmark cria automaticamente Agent Workers e usa um algoritmo de otimização para encontrar a capacidade máxima do serviço.

  • Modo scan: Aumenta dinamicamente a pressão de um QPS inicial (minQPS) até o QPS máximo (maxQPS) em um intervalo especificado (adjustInterval) e passo (qpsGrowthDelta). Para quando maxRT, maxQPS ou tolerância a erros (faultTolerate) é atingido.

  • Modo manual: Usa um número fixo de agentes de teste e concorrência por agente. Ambos podem ser ajustados dinamicamente durante o teste.

O console suporta apenas o modo auto. O cliente EASCMD suporta os modos auto, scan e manual.

Adicione o parâmetro mode na seção optional do arquivo de configuração JSON para especificar o modo de teste. Seguem exemplos de configuração.

Modo auto

No modo auto, basta especificar o nome do serviço e os dados de teste no arquivo de configuração. Use os valores padrão para os outros parâmetros. Exemplo de configuração:

{
    "service": {
        "serviceName": "demo"
    },
    "data": {
        "path": "https://examplebucket.oss-cn-chengdu.aliyuncs.com/data/warmup.tf.bin"
    },
    "optional": {
        "maxQPS": 1000,
        "duration": 300
     }
}

Modo scan

{
    "service": {
        "serviceName": "demo"
    },
    "data": {
        "content": "aGVsbG8K"
    },
    "optional": {
        "mode": "scan",
        "maxQPS": 1000,
        "minQPS": 500,
        "qpsGrowthDelta": 100,
        "adjustInterval": 30
    }
}

Modo manual

{
    "service": {
        "serviceName": "demo"
    },
    "data": {
        "content": "aGVsbG8K"
    },
    "optional": {
        "mode": "manual",
        "agentCount": 1,
        "concurrency": 5
    }
}

Descrições dos parâmetros JSON

Item

Parâmetro

Obrigatório

Descrição

service

serviceName

Sim

Nome do serviço a ser testado.

data

content

Não

Uma única entrada de dados de requisição de teste como string codificada em Base64.

Para especificar múltiplas entradas de dados de requisição, use o parâmetro path.

path

Não

Caminho da fonte de dados de teste. Configure um caminho HTTP ou OSS. Especifique múltiplos caminhos separados por vírgulas (,). Também é possível compactar vários arquivos de teste em um arquivo .zip para configuração em lote.

Nota

Salve o arquivo de dados de teste em seu formato original. Não realize codificação Base64.

multiLine

Não

Especifica se os dados de teste devem ser divididos por linha. É um valor booleano, com padrão false. Se definido como true, os dados baixados serão analisados linha por linha.

http

headers

Não

Configurações de cabeçalho de requisição HTTP. É uma lista. Por exemplo: ["Authorization:aaa", "Content-Type:text"].

timeout

Não

Tempo limite da requisição HTTP em milissegundos. O padrão é 20.000.

optional

mode

Não

Modo de teste de estresse. Três modos são suportados (Stress testing modes):

  • auto (padrão): Modo de pressão automática.

  • scan: Modo de pressão periódica.

  • manual: Modo de pressão manual.

duration

Não

Duração do teste de estresse em segundos. O padrão é 600 e o máximo é 1.200.

agentCount

Não

Número de réplicas de clientes no modo manual. Um número maior de réplicas resulta em maior pressão. O padrão é 1.

concurrency

Não

Requisições concorrentes por instância de cliente no modo manual. Padrão: 2. Aumente primeiro a concorrência; se ainda for insuficiente, aumente o número de agentes.

adjustInterval

Não

Intervalo de ajuste dinâmico para pressão automática no modo scan, em segundos. O padrão é 60.

minQPS

Não

Valor inicial de QPS para pressão automática no modo scan. O padrão é 100.

maxQPS

Não

QPS máximo permitido no modo scan ou auto.

maxRT

Não

RT máximo (TP99) no modo scan ou auto. Se esse limiar for excedido, o QPS será ajustado automaticamente até que o RT em tempo real atenda às expectativas.

qpsGrowthDelta

Não

Quantidade de aumento do QPS a cada vez no modo scan. O padrão é 50.

faultTolerate

Não

Tolerância a erros (códigos de status não-200) no modo scan ou auto. Por exemplo, 0,01 significa que o processo de erro é acionado com 1% de taxa de falha. Padrão: 0,001 (um em mil).

faultAction

Não

Comportamento do controlador VPC de teste quando a taxa de erro de requisição excede o limiar definido por faultTolerate no modo scan ou auto. Os seguintes valores são suportados:

  • stop: Mantém o QPS atual e para de aumentar a pressão.

  • revise (padrão): Ajusta dinamicamente o QPS até que a taxa de erro de requisição atenda às expectativas.

Métricas de monitoramento de tarefas de teste de estresse

Métricas específicas de serviço LLM

TTFT (Time To First Token)

Tempo desde o envio de uma requisição até o recebimento do primeiro token gerado.

image

TPOT (Time per Output Token)

Intervalo de tempo entre dois tokens gerados consecutivamente.

image

TPS (Tokens Per Second)

Número de tokens gerados por segundo.

image

Métricas gerais

Distribuição de requisições por segundo

Requisições recebidas pelo serviço por segundo ao longo do tempo.

image

Distribuição de tempo de resposta

Distribuição da contagem de respostas dentro do intervalo de tempo selecionado.

image

Distribuição de tráfego

Volume de dados de requisição e resposta entre cliente e serviço ao longo do tempo.

image

Distribuição de intervalo de tempo de resposta

Porcentagem de respostas em diferentes intervalos de latência (ms).

image

Distribuição geral de tempo de resposta

Latência de requisição ponta a ponta em diferentes quantis (ms).

image

Distribuição de código de status de retorno

Distribuição dos códigos de status HTTP retornados pelo serviço.

image

FAQ

Por que recebo um erro 400 ou 404 durante um teste de dados único quando uma requisição curl funciona?

Sintoma: Ao realizar um teste de estresse com um clique em um serviço de inferência de modelo grande de linguagem implantado no EAS usando uma única entrada de dados, todas as requisições falham com código de status HTTP 400 ou 404. No entanto, enviar a mesma requisição manualmente com curl retorna sucesso com código 200.

Causa raiz:

  • 404: A URL de teste de estresse está incorreta. Por exemplo, pode conter uma barra extra no final (como /test/), enquanto o caminho registrado para o serviço é /test, causando incompatibilidade de roteamento.

  • 400: O formato do corpo da requisição está incorreto. Um erro comum é não envolver a string JSON em aspas simples ao gerar a codificação Base64 para o corpo da requisição (como echo -n {"file_names": [...]} | base64). Isso faz com que o shell analise o JSON incorretamente, resultando em um formato inválido que o serviço não consegue processar.

Solução:

  • Garanta que o caminho da URL de teste corresponda exatamente ao caminho registrado do serviço. Remova quaisquer barras extras no final (use /test em vez de /test/).

  • Antes de gerar a codificação Base64, envolva todo o corpo da requisição JSON em aspas simples. Por exemplo:

    echo -n '{"file_names": ["xxx.pdf"]}' | base64

P: A tarefa de teste de estresse relata um erro cannot unpack non-iterable NoneType object****

Esse erro geralmente é causado por formato de dados incorreto no arquivo de teste. Quando o formato da requisição é JSON, certifique-se de atender aos seguintes requisitos:

  • Se o arquivo contiver apenas uma requisição JSON, ela não deve conter quebras de linha ou retornos de carro.

  • Múltiplas requisições devem ser separadas por quebras de linha.

Próximos passos