Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta página fornece um notebook de exemplo para teste de carga e aborda os requisitos de configuração, autenticação, configuração de cluster e instruções passo a passo para executar testes de carga para 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 pontos de serviço de extremidade.
Requerimentos
Transfira e importe uma cópia dos seguintes ficheiros e bloco de notas de exemplo para a sua área de trabalho do Azure Databricks:
- input.json. Esse arquivo especifica a carga que é enviada por todas as conexões simultâneas para seu ponto de extremidade. Se você estiver testando um ponto de extremidade sensível ao tamanho da carga útil, verifique se a carga de entrada reflete como você espera que o ponto de extremidade seja usado. Consulte Testar a carga útil.
-
fast_vs_load_test_async_load.py. Este script é usado pelo notebook de exemplo para validar o seu token de autenticação e ler o conteúdo do arquivo
input.json.
Caderno de teste de carga Locust
Para obter o melhor desempenho, selecione um grande número de núcleos e alta memória para os trabalhadores no cluster que você usa para executar o bloco de anotações.
Gafanhotos
Locust é uma estrutura de código aberto para testes de carga que é comumente usada para avaliar pontos finais 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 geradas, enquanto mede o desempenho do seu ponto de extremidade durante o teste. O gafanhoto é usado para todo o código de exemplo, pois padroniza e automatiza a abordagem.
Locust depende de recursos da CPU para executar seus testes. Dependendo da carga útil, isso facilita cerca de 4000 solicitações por segundo por núcleo de CPU. No bloco de anotações de exemplo, o --processes -1 sinalizador é definido para permitir que o Locust detete automaticamente o número de núcleos de CPU no seu driver e usufrua totalmente deles.
Se Locust estiver congestionado pela CPU, uma mensagem de saída será exibida.
Configurar a entidade de serviço
Faça isso fora do notebook de exemplo.
Para interagir com o ponto terminal otimizado para rotas, o teste Locust precisa ter a capacidade de gerar tokens OAuth com permissões para consultar o ponto terminal. Siga estas etapas para configurar a autenticação:
- Crie um Principal de Serviço do Databricks.
- Navegue até à página web do endpoint de pesquisa vetorial. Clique em Permissões e conceda ao Principal de Serviço permissões de nível Pode Consultar.
-
Crie um escopo secreto databricks nomeado com duas chaves:
- O ID do principal de serviço do seu Databricks. Por exemplo:
service_principal_client_id. - O segredo do cliente para a entidade de serviço Databricks. Por exemplo,
service_principal_client_secret.
- O ID do principal de serviço do seu Databricks. Por exemplo:
- Coloque o ID do cliente e o segredo de cliente do principal de serviço num segredo do Databricks.
Configurar o bloco de notas
As seções a seguir descrevem como configurar seu bloco de anotações de exemplo e os arquivos de suporte que você baixou.
Configurar variáveis
Na sua cópia do bloco de notas de exemplo, configure os seguintes parâmetros:
| Parâmetro | Descrições |
|---|---|
endpoint_name |
O nome do seu ponto de extremidade de pesquisa 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 |
Os testes de carga do Locust produzem 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 da área de segredo do Databricks que contém as informações do principal de serviço. |
Especificar uma carga útil
Especifique o seu payload no ficheiro input.json, junto ao ficheiro do bloco de notas de exemplo.
Para verificar a validade dos resultados do teste de carga, é importante considerar a carga que deve ser enviada pelos clientes Locust. Escolha uma carga útil que represente com precisão o tipo de carga útil que você planeja enviar em produção. Por exemplo, se o seu modelo for um modelo de deteção de fraude que avalia transações com cartão de crédito em tempo real, como uma transação por pedido, verifique se a sua carga útil representa apenas uma transação típica.
Testar a carga útil
Teste a sua carga copiando e colando os dados completos input.json na janela Consulta no endpoint de pesquisa vetorial e garantindo que o seu modelo esteja a responder com os resultados desejados.
Para abrir a caixa de diálogo Consulta do seu endpoint:
- Na barra lateral esquerda do seu espaço de trabalho do Azure Databricks, selecione Servir.
- Selecione o ponto de extremidade a ser usado para o teste de carga.
- No canto superior direito, no menu suspenso Usar , selecione Consulta.
A simultaneidade de ponto final necessária para atingir um determinado percentil de latência é dimensionada linearmente com o número de conexões simultâneas. Isso significa que você pode testar em um pequeno endpoint e calcular o tamanho do endpoint necessário antes de executar um teste final.
Executar o teste de carga
Depois que o ponto de extremidade, os blocos de anotações e a carga útil estiverem configurados, você poderá começar a percorrer a execução do bloco de anotações.
O notebook executa um teste de carga de 30 segundos contra o seu endpoint para confirmar que o endpoint está online e respondendo.
No notebook de exemplo, pode executar uma série de testes de carga usando diferentes níveis de concorrência do lado do cliente. Depois de concluir a série de testes de carga, os resultados no caderno de anotações 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 à concorrência 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 o seu endpoint para atender às suas metas de RPS e latência.
Depois de atualizar a configuração do endpoint para corresponder às recomendações do notebook, pode executar o teste de carga final do notebook para confirmar se o endpoint está a cumprir os requisitos de latência e RPS.