Pular para o conteúdo principal

Configurar um teste de carga para o ponto de extremidade de pesquisa vetorial

Esta página fornece um exemplo de Notebook para testes de carga e abrange requisitos de configuração, autenticação, configuração cluster e instruções passo a passo para executar testes de carga para otimizar o desempenho endpoint de pesquisa de vetores.

Para obter mais informações sobre testes de carga e conceitos relacionados, consulte Teste de carga para servir endpoint.

Requisitos

baixe e importe uma cópia dos seguintes arquivos e do exemplo do Notebook 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 como você espera que o endpoint seja usado. Veja Testar a carga útil.
  • teste_rápido_vs_de_carga_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 .

Caderno de teste de carga do Locust

Open notebook in new tab

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

Gafanhoto

Locust é uma estrutura de código aberto para testes de carga comumente usada para avaliar endpoints de nível de produção. O O framework Locust permite que você modifique vários parâmetros, como o número de conexões de clientes e a velocidade com que as conexões de clientes são geradas, ao mesmo tempo em que mede o desempenho do seu endpoint durante o teste. O Locust é usado 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 facilita aproximadamente 4.000 solicitações por segundo por núcleo de CPU. No exemplo do Notebook, o sinalizador --processes -1 é definido para permitir que o Locust detecte automaticamente o número de núcleos de CPU no seu driver e os utilize totalmente.

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

Configurar entidade de serviço

Faça isso fora do Notebook de exemplo.

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

  1. Crie uma entidade de serviço do Databricks.

  2. Navegue até a página da web endpoint da pesquisa de vetores. Clique em Permissões e conceda à entidade de serviço permissões de nível de consulta .

  3. Crie um Escopo Secreto do Databricks nomeado com duas chaves:

    1. O ID da sua entidade de serviço Databricks . Por exemplo: service_principal_client_id.
    2. O segredo do cliente para a entidade de serviço Databricks . Por exemplo service_principal_client_secret.
  4. Coloque o ID do cliente e o segredo do cliente da sua entidade de serviço em um segredoDatabricks.

Configurar o Notebook

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

Configurar variáveis

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

Parâmetro

Descrições

endpoint_name

O nome do seu endpoint de pesquisa de vetor.

locust_run_time

Quanto tempo 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.

csv_output_prefix

Os testes de carga do Locust geram arquivos CSV com informações e detalhes. Essas strings definem um prefixo que é anexado aos arquivos CSV .

secret_scope_name

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 para 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 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 Consulta no seu endpoint de pesquisa de vetor e garantindo que seu modelo esteja respondendo com as saídas desejadas.

Para abrir a caixa de consulta do seu endpoint:

  1. Na barra lateral esquerda do seu workspace Databricks , selecione Exibição .
  2. Selecione o endpoint a ser usado para testes de carga.
  3. No canto superior direito, no menu dropdown Usar , selecione Consulta .

A simultaneidade endpoint necessária para atingir um certo percentual de latência aumenta linearmente com o número de conexões concorrentes. Isso significa que você pode testar em um pequeno endpoint e calcular o tamanho do endpoint necessário antes de executar um teste final.

execução do teste de carga

Depois que seu endpoint, Notebook e payload estiverem configurados, você pode começar a passar pela execução do Notebook.
O Notebook executa um teste de carga de 30 segundos no seu endpoint para confirmar se endpoint está online e respondendo.

No exemplo do Notebook, você pode executar uma série de testes de carga usando diferentes quantidades de simultaneidade no lado do cliente. Após 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 dos percentis de latência em relação à simultaneidade do cliente.

O Notebook 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 endpoint para atender às suas metas de RPS e latência.

Depois de 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.