Pular para o conteúdo principal

Configure um teste de carga para o endpoint de modelo de serviço personalizado.

Este artigo fornece um exemplo de notebook de teste de carga e aborda os requisitos de configuração, autenticação, configuração de clustering e instruções passo a passo para executar testes de carga para otimizar o desempenho do endpoint.

As informações contidas neste artigo e os arquivos de exemplo fornecem uma introdução sobre como configurar um teste de carga para o seu Mosaic AI Model Serving endpoint em Databricks.

Para obter mais informações sobre testes de carga e conceitos relacionados, consulte Testes de carga para endpoint de serviço.

Requisitos

Baixe e importe uma cópia dos seguintes arquivos e do Notebook de exemplo para o seu Databricks workspace:

  • entrada.JSON

    • Este arquivo especifica a carga útil que é enviada por todas as conexões concorrentes para o seu endpoint. Se estiver testando um endpoint sensível ao tamanho da carga útil, certifique-se de que a carga útil de entrada seja representativa de como você espera que o endpoint seja utilizado. Consulte Testar a carga útil para obter mais orientações.
  • fast-load-test.py

    • Este script é utilizado pelo Notebook de teste de carga Locust para validar tokens de autenticação e ler a entrada. Conteúdo do arquivoJSON.

Teste de carga de gafanhotos Notebook

Open notebook in new tab

Os arquivos acima e o Notebook de exemplo foram testados utilizando a seguinte configuração de agrupamento:

  • Agrupamento de nó único
  • 15.4 Tempo de execução do LTS ML
  • Escolha uma instância otimizada para CPU. A Databricks recomenda uma instância com pelo menos 32 núcleos. Instâncias com mais núcleos podem gerar consultas ou solicitações por segundo (RPS) mais altas.

Gafanhoto

Locust é uma estrutura de código aberto para testes de carga, comumente utilizada para avaliar terminais de produção. A estrutura Locust permite modificar 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, enquanto mede o desempenho do seu endpointao longo do teste. O Locust é usado para 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 4000 solicitações por segundo por núcleo de CPU. No Notebook do teste de carga Locust , a bandeira “ --processes -1 ” foi definida para permitir que o Locust detecte automaticamente o número de núcleos da CPU no seu driver e os utilize plenamente.

Fique de olho na saída do Locust. Se o Locust estiver sendo estrangulado pela CPU, uma mensagem de saída será exibida.

Configure seu ambiente

As orientações nesta seção devem ser concluídas fora do Notebook de teste de carga Locust .

configuração do terminal

O teste de carga Locust Notebook pressupõe que o seu modelo está sendo executado em uma CPU servindo modelo endpoint. Os cálculos neste Notebook pressupõem que você configurou o seguinte ao criar seu endpoint de serviço usando a interface do usuário de serviço. Consulte Criar endpoint modelo servindo personalizado.

  • Inicie com uma CPU “Pequena” (endpoint concorrência de 4) endpoint. Ao criar seu endpoint, certifique-se de que ele tenha uma simultaneidade mínima e máxima de 4.
  • A otimização da rota está ativada
  • A escala para zero está desativada.

entidade de serviço de configuração

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

  1. Criar uma entidade de serviço Databricks

  2. Navegue até a página da Web do modelo de serviço endpoint, clique em “Permissões” e conceda à entidade de serviço permissões de nível “Pode consultar”.

  3. Crie um Secret Scope no Databricks 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. Insira o ID do cliente e o segredo do cliente da sua entidade de serviço em um segredo do Databricks.

Notebook configuração

As seções a seguir descrevem como configurar seu Notebook de teste de carga Locust e os arquivos de suporte que você baixa nos Requisitos.

Configurar variáveis

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

Parâmetro

Descrições

endpoint_name

O nome do seu modelo de atendimento Databricks é endpoint.

locust_run_time

Quanto tempo leva para executar cada teste de carga individual? Muitos testes de carga estão em execução, portanto, uma duração de 5 a 10 minutos é um bom e default e.

csv_output_prefix

CSV Os testes de carga do Locust geram arquivos de informações e métricas. Essas strings definem um prefixo que é acrescentado aos arquivos CSV.

secret_scope_name

O nome do seu Escopo Secreto Databricks que contém a informação da entidade de serviço.

Especificar uma carga

Especifique sua carga útil no arquivo “ input.json ” junto com o Notebook do teste de carga Locust .

Para garantir a validade dos resultados do teste de carga, é importante considerar a carga que deve ser enviada pelos clientes Locust. Escolha uma carga que represente com precisão o tipo de carga que você planeja enviar na produção. Por exemplo, se o seu modelo é um modelo de detecção de fraudes em transações com cartão de crédito que será avaliado em tempo real, como uma transação por solicitação, certifique-se de que sua carga útil represente apenas uma transação típica.

Teste a carga

Teste sua carga útil copiando e colando todos os dados input.json na janela Consulta em Databricks servindo modelo endpoint e certifique-se de que seu modelo está respondendo com os resultados desejados.

Para abrir a caixa de consulta para o seu endpoint:

  1. Navegue até a interface do usuário de atendimento em Databricks workspace.
  2. Selecione o endpoint que deseja utilizar para o teste de carga.
  3. No canto superior direito, selecione o menu “ dropdown ” ao lado do botão “Use ”.
  4. Selecione Consulta .

O modelo de serviço endpoint que você precisa para atingir um determinado percentil de latência é escalonado linearmente com o número de conexões simultâneas. Isso significa que é possível realizar testes em um pequeno endpoint e calcular o tamanho endpoint necessário antes de realizar o teste final.

execução do teste de carga

Após configurar o endpoint, o Notebook e a carga útil, é possível iniciar a execução do Notebook.
O Notebook executa um teste de carga muito curto, com duração de 30 segundos, em seu endpoint para garantir que o endpoint esteja online e respondendo.

É possível executar uma série de testes de carga com diferentes quantidades de simultaneidade do lado do cliente no Notebook de teste de carga Locust . Após concluir a série de testes de carga, existem células no Notebook que imprimem o conteúdo de quaisquer falhas ou exceções de solicitação e criam um gráfico dos percentis de latência em relação à simultaneidade do cliente.

Você recebe uma tabela de resultados e deve fazer uma seleção. Selecione a linha que melhor atende aos seus requisitos de latência e insira o RPS desejado pelos aplicativos. O Notebook utiliza as informações fornecidas pelo usuário e responde com uma recomendação sobre como dimensionar o seu endpoint para atender às suas metas de RPS e latência.

Após atualizar a configuração do servindo modelo endpoint para corresponder às recomendações do Notebook, é possível executar o teste de carga final do Notebook para garantir que o endpoint esteja atendendo aos requisitos de latência e RPS.