Compartilhar via


Configurar um teste de carga para endpoints de pesquisa de vetor

Esta página fornece um notebook de exemplo para teste de carga e aborda requisitos de configuração, autenticação, configuração de cluster e instruções passo a passo para executar testes de carga, visando otimizar o desempenho do endpoint de pesquisa vetorial.

Para obter mais informações sobre testes de carga e conceitos relacionados, consulte Teste de carga para atender pontos de extremidade.

Requisitos

Baixe e importe uma cópia dos seguintes arquivos e um notebook de exemplo para o workspace do Azure Databricks:

  • input.json. Esse arquivo especifica o payload enviado por todas as conexões simultâneas ao seu endpoint. Se você estiver testando um endpoint sensível ao tamanho do payload, verifique se o payload de entrada reflete como você espera que o endpoint seja usado. Consulte Testar a carga útil.
  • fast_vs_load_test_async_load.py. Esse script é usado pelo notebook de exemplo para validar o token de autenticação e ler o conteúdo do input.json arquivo.

Caderno de teste de carga do Locust

Obter laptop

Para obter melhor desempenho, selecione um grande número de núcleos e memória alta para os trabalhadores no cluster que você usa para executar o notebook.

Locustídeo

Locust é uma estrutura de software livre para teste de carga que normalmente é usada para avaliar endpoints de nível de produção. A estrutura Locust permite que você modifique vários parâmetros, como o número de conexões de cliente e a velocidade com que as conexões de cliente são estabelecidas, enquanto mede o desempenho do endpoint ao longo do teste. Locust é usado para todo o código de exemplo, pois padroniza e automatiza a abordagem.

O Locust depende dos recursos da CPU para executar seus testes. Dependendo do conteúdo, isso facilita cerca de 4.000 solicitações por segundo por núcleo de CPU. No notebook de exemplo, o --processes -1 flag é configurado para permitir que o Locust detecte automaticamente o número de núcleos de CPU no seu driver e usá-los por completo.

Se o Locust estiver limitado pela CPU, uma mensagem de saída será exibida.

Configurar o principal de serviço

Faça isso fora do notebook de exemplo.

Para interagir com o endpoint otimizado por rota, o teste Locust precisa ser capaz de gerar tokens OAuth com permissões para consultar o endpoint. Siga estas etapas para configurar a autenticação:

  1. Crie um Service Principal do Databricks.
  2. Navegue até a página web do endpoint de pesquisa de vetor. Clique em Permissões e conceda à Entidade de Serviço permissões de nível Can Query.
  3. Crie um escopo secreto do databricks nomeado com duas chaves:
    1. A ID da entidade de serviço do Databricks. Por exemplo: service_principal_client_id .
    2. O segredo do cliente para a entidade de serviço do Databricks. Por exemplo, service_principal_client_secret.
  4. Coloque o ID do cliente e o Segredo do Cliente da entidade de serviço em um segredo do Databricks.

Configurar o bloco de anotações

As seções a seguir descrevem como configurar seu notebook de exemplo e os arquivos de suporte que você baixou.

Configurar variáveis

Na cópia do notebook de exemplo, configure os seguintes parâmetros:

Parâmetro Descrições
endpoint_name O nome do endpoint de busca vetorial.
locust_run_time Quanto tempo executar cada teste de carga individual. Muitos testes de carga são executados, portanto, uma duração de 5 a 10 minutos é um bom padrão.
csv_output_prefix Testes de carga com o Locust geram arquivos CSV de informações e métricas. Essa cadeia de caracteres define um prefixo que é anexado aos arquivos CSV.
secret_scope_name O nome do escopo de segredos do Databricks que contém as informações do principal de serviço.

Especificar uma carga útil

Especifique sua carga útil no arquivo input.json junto com o bloco de anotações de exemplo.

Para verificar a validade dos resultados do teste de carga, é importante considerar a carga útil que deve ser enviada pelos clientes Locust. Escolha um payload que represente com precisão o tipo de payload que você planeja enviar em produção. Por exemplo, se o modelo for um modelo de detecção de fraude que avalia transações de cartão de crédito em tempo real, como uma transação por solicitação, verifique se o conteúdo representa apenas uma transação típica.

Testar o conteúdo

Teste sua carga copiando e colando os dados completos input.json na janela de Consulta do ponto de extremidade de pesquisa vetorial e garantindo que seu modelo esteja respondendo com as saídas desejadas.

Para abrir a janela de Consulta para seu ponto de extremidade:

  1. Na barra lateral esquerda no espaço de trabalho do Azure Databricks, selecione Serviço.
  2. Selecione o ponto de extremidade a ser usado para teste de carga.
  3. No canto superior direito, no menu suspenso Usar, selecione Consulta.

A simultaneidade do endpoint necessária para alcançar um determinado percentil de latência aumenta linearmente com o número de conexões simultâneas. Isso significa que você pode testar em um ponto de extremidade pequeno e calcular o tamanho do ponto de extremidade necessário antes de executar um teste final.

Executar o teste de carga

Depois que o ponto de extremidade, os notebooks e o conteúdo forem configurados, você poderá começar a executar o notebook.
O notebook executa um teste de carga de 30 segundos no ponto de extremidade para confirmar se o ponto de extremidade está online e respondendo.

No notebook de exemplo, você pode executar uma série de testes de carga usando diferentes níveis de simultaneidade do lado do cliente. Depois de concluir a série de testes de carga, os resultados do notebook mostram o conteúdo de quaisquer falhas ou exceções de solicitação e também exibem um gráfico de percentis de latência em relação à simultaneidade do cliente.

O bloco de anotações mostra uma tabela de resultados e você deve selecionar a linha que melhor atende aos seus requisitos de latência e inserir o RPS desejado do aplicativo. Com base nas informações fornecidas, o notebook recomenda como dimensionar seu ponto de extremidade para atender às suas metas de RPS e latência.

Depois de atualizar a configuração do ponto de extremidade para corresponder às recomendações do notebook, você pode executar o teste de carga final do notebook para confirmar se o ponto de extremidade está atendendo aos requisitos de latência e RPS.