Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.jsonarquivo.
Caderno de teste de carga do Locust
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:
- Crie um Service Principal do Databricks.
- 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.
-
Crie um escopo secreto do databricks nomeado com duas chaves:
- A ID da entidade de serviço do Databricks. Por exemplo:
service_principal_client_id. - O segredo do cliente para a entidade de serviço do Databricks. Por exemplo,
service_principal_client_secret.
- A ID da entidade de serviço do Databricks. Por exemplo:
- 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:
- Na barra lateral esquerda no espaço de trabalho do Azure Databricks, selecione Serviço.
- Selecione o ponto de extremidade a ser usado para teste de carga.
- 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.