Configure um teste de carga para o endpoint de pesquisa vetorial.
Esta página fornece um exemplo de Notebook para teste de carga e aborda os requisitos de configuração, autenticação, configuração cluster e instruções passo a passo para executar testes de carga a fim de otimizar o desempenho endpoint de busca vetorial.
Para obter mais informações sobre testes de carga e conceitos relacionados, consulte Teste de carga para endpoint de serviço.
Requisitos
Baixe e importe uma cópia dos seguintes arquivos e do Notebook de exemplo para seu workspace Databricks :
- entrada.JSON. Este arquivo especifica a carga útil que é enviada por todas as conexões concorrentes ao seu endpoint. Se você estiver testando um endpoint que é sensível ao tamanho da carga útil, verifique se a carga útil de entrada reflete a forma como você espera que o endpoint seja usado. Consulte Testar a carga útil.
- fast_vs_load_test_async_load.py. Este script é usado pelo Notebook de exemplo para validar seus tokens de autenticação e ler o conteúdo do arquivo
input.json.
Teste de carga de gafanhotos Notebook
Para obter o melhor desempenho, selecione um grande número de núcleos e bastante memória para o nó de trabalho no cluster que você usa para executar o Notebook.
Gafanhoto
Locust é um framework de código aberto para testes de carga, comumente usado para avaliar endpoints em ambiente de produção. O O framework Locust permite modificar vários parâmetros, como o número de conexões de clientes e a velocidade com que essas conexões são criadas, enquanto mede o desempenho do seu endpoint durante todo o teste. O Locust é utilizado em todo o código de exemplo, pois padroniza e automatiza a abordagem.
O Locust depende do recurso da CPU para executar seus testes. Dependendo da carga útil, isso possibilita aproximadamente 4000 solicitações por segundo por núcleo de CPU. No exemplo de Notebook, o sinalizador --processes -1 está definido para permitir que o Locust detecte automaticamente o número de núcleos de CPU no seu driver e os utilize completamente.
Se o Locust estiver com gargalo na CPU, uma mensagem de saída será exibida.
Criar entidade de serviço
Faça isso fora do Notebook de exemplo.
Para interagir com o endpoint otimizado para rotas, o teste Locust precisa ser capaz de gerar tokens OAuth com permissões para consultar o endpoint. Siga estes passos para configurar a autenticação:
-
Acesse a página da web endpoint de pesquisa vetorial. Clique em Permissões e conceda à entidade de serviço permissões de nível de consulta .
-
Crie um Escopo Secreto do Databricks nomeado com duas chaves:
- O ID da sua entidade de serviço 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 da sua entidade de serviço Databricks. Por exemplo:
-
Insira o ID do cliente e o segredo do cliente da sua entidade de serviço em um segredo do Databricks.
Configurar o Notebook
As seções a seguir descrevem como configurar seu Notebook de exemplo e os arquivos de suporte que você baixar.
Configurar variáveis
Na sua cópia do Notebook de exemplo, configure os seguintes parâmetros:
Parâmetro | Descrições |
|---|---|
| O nome do seu endpoint de pesquisa vetorial. |
| Quanto tempo leva para executar cada teste de carga individual? Muitos testes de carga são executados, portanto, uma duração de 5 a 10 minutos é um bom default. |
| Os testes de carga do Locust geram arquivos CSV com informações e detalhes. Essa string define um prefixo que é adicionado aos arquivos CSV . |
| O nome do seu Escopo Secreto Databricks que contém a entidade de serviço de informação. |
Especifique uma carga útil
Especifique sua carga útil no arquivo input.json junto com o Notebook 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 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 detecção de fraudes que avalia transações de cartão de crédito em tempo real, como uma transação por solicitação, verifique se a sua carga útil representa apenas uma transação típica.
Teste a carga útil
Teste sua carga útil copiando e colando os dados completos input.json na janela de consulta do seu endpoint de pesquisa vetorial e garantindo que seu modelo esteja respondendo com as saídas desejadas.
Para abrir a caixa de consulta do seu endpoint:
- Na barra lateral esquerda do seu workspace Databricks , selecione Servindo .
- Selecione o endpoint a ser usado para o teste de carga.
- No canto superior direito, no menu dropdown Usar , selecione Consulta .
A concorrência endpoint necessária para atingir 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 endpoint pequeno e calcular o tamanho de endpoint necessário antes de realizar o teste final.
execução do teste de carga
Após configurar o endpoint, o Notebook e o payload, você pode começar a executar o Notebook.
O Notebook executa um teste de carga de 30 segundos em seu endpoint para confirmar que endpoint está online e respondendo.
No notebook de exemplo, você pode executar uma série de testes de carga usando diferentes níveis de concorrência do lado do cliente. Após a conclusão da série de testes de carga, os resultados do Notebook mostram o conteúdo de quaisquer falhas ou exceções de requisição, além de exibir um gráfico dos percentis de latência em relação à concorrência de clientes.
O Notebook exibe uma tabela de resultados, e você deve selecionar a linha que melhor atenda aos seus requisitos de latência e inserir o RPS desejado para o aplicativo. Com base nas informações fornecidas, o Notebook recomenda como dimensionar seu endpoint para atender às suas metas de RPS e latência.
Após atualizar a configuração do seu endpoint para corresponder às recomendações do Notebook, você pode executar o teste de carga final do Notebook para confirmar se o endpoint está atendendo aos requisitos de latência e RPS.