Parâmetros de comparação de desempenho da IA do Azure Search

Importante

Esses parâmetros de comparação não garantem um determinado nível de desempenho do serviço, no entanto, eles podem servir como um guia útil para estimar o desempenho potencial em configurações semelhantes.

O desempenho da IA do Azure Search depende de uma diversos fatores, incluindo o tamanho do serviço de pesquisa e os tipos de consultas sendo enviadas. Para ajudar a estimar o tamanho do serviço de pesquisa necessário para sua carga de trabalho, executamos vários benchmarks para documentar o desempenho de diferentes serviços e configurações de pesquisa.

Para abranger um intervalo de diferentes casos de uso, executamos parâmetros de comparação para dois cenários principais:

  • Pesquisa de comércio eletrônico – esse benchmark emula um cenário de comércio eletrônico real e é baseado na empresa de comércio eletrônico nórdica CDON.
  • Pesquisa de documentos – esse cenário é composto por pesquisas de palavra-chave em documentos de texto completos do Semantic Scholar. Isso emula uma solução de pesquisa de documentos típica.

Embora esses cenários reflitam diferentes casos de uso, cada cenário é diferente para que sempre recomendemos o teste de desempenho de sua carga de trabalho individual. Publicamos uma solução de teste de desempenho usando o JMeter para que você possa executar testes semelhantes em seu próprio serviço.

Metodologia de teste

Para avaliar o parâmetro de comparação de desempenho de IA do Azure Search, executamos testes para dois cenários diferentes em diferentes camadas e combinações de réplica/partição.

Para criar esses parâmetros de comparação, a seguinte metodologia foi usada:

  1. O teste começa em X consultas por segundo (QPS) por 180 segundos. Geralmente, isso era 5 ou 10 QPS.
  2. Em seguida, o QPS aumentou em X e foi executado por mais 180 segundos
  3. A cada 180 segundos, o teste aumenta X QPS até a latência média aumentada acima de 1.000 ms ou menor que 99% das consultas bem-sucedidas.

O grafo a seguir fornece um exemplo visual de como é a carga de consulta do teste:

Example test

Cada cenário usou pelo menos 10.000 consultas exclusivas para evitar que os testes sejam excessivamente distorcidos pelo cache.

Importante

Esses testes incluem apenas cargas de trabalho de consulta. Se você espera ter um alto volume de operações de indexação, não deixe de considerar isso em seus testes de estimativa e desempenho. O código de exemplo para a simulação de indexação pode ser encontrado neste tutorial.

Definições

  • QPS máximo – os números de QPS máximos se baseiam no maior QPS obtido em um teste em que 99% das consultas foram concluídas com êxito sem limitação e latência média permanecia abaixo de 1000 ms.

  • Porcentagem máxima de QPS – um percentual do máximo de QPS alcançado para um teste específico. Por exemplo, se um determinado teste atingir um máximo de 100 QPS, 20% de QPS máximo seria 20 QPS.

  • Latência – a latência do servidor para uma consulta; esses números não incluem o RTT (atraso de viagem de ida e volta). Os valores estão em milissegundos (ms).

Testar o aviso de isenção de responsabilidade

O código usado para executar esses parâmetros de comparação está disponível no repositório azure-search-performance-testing. Vale a pena observar que observamos níveis de QPS ligeiramente menores na solução de teste de desempenho JMeter do que nos parâmetros de comparação. As diferenças podem ser atribuídas às diferenças no estilo dos testes. Isso fala sobre a importância de tornar seus testes de desempenho o mais semelhantes à sua carga de trabalho de produção possível.

Importante

Esses parâmetros de comparação de forma alguma garantem um certo nível de desempenho do seu serviço, mas podem dar uma ideia do desempenho que você pode esperar com base no seu cenário.

Se tiver mais dúvidas ou preocupações, entre em contato conosco pelo endereço azuresearch_contact@microsoft.com.

CDON Logo

Esse parâmetro de comparação foi criado em parceria com a empresa de comércio eletrônico, CDON, o maior mercado online nórdico com operações na Suécia, Finlândia, Noruega e Dinamarca. Por meio de seus 1.500 comerciantes, a CDON oferece gama variada que inclui mais de 8 milhões de produtos. Em 2020, a CDON tinha mais de 120 milhões de visitantes e 2 milhões de clientes ativos. Você pode saber mais sobre o uso de IA do Azure Search pela CDON neste artigo.

Para executar esses testes, usamos um instantâneo do índice de pesquisa de produção da CDON e milhares de consultas exclusivas de seu site.

Detalhes do cenário

  • Contagem de documentos: 6.000.000
  • Tamanho do índice: 20 GB
  • Esquema de índice: um índice amplo com 250 campos no total, 25 campos pesquisáveis e 200 campos de face/filtro
  • Tipos de consulta: consultas de pesquisa de texto completo incluindo facetas, filtros, ordenação e perfis de pontuação

Desempenho S1

Consultas por segundo

O gráfico a seguir mostra a carga de consulta mais alta que um serviço pode manipular por um longo período em termos de consultas por segundo (QPS).

Highest maintainable QPS ecommerce s1

Latência da consulta

A latência da consulta varia de acordo com a carga do serviço e os serviços sob maior estresse têm uma latência média de consulta mais alta. A tabela a seguir mostra os 25º, 50º, 75º, 90º, 95º e 99º percentis de latência de consulta para três níveis de uso diferentes.

Porcentagem máxima de QPS Latência Média 25% 75% 90% 95% 99%
20% 104 ms 35 ms 115 ms 177 ms 257 ms 738 ms
50% 140 ms 47 ms 144 ms 241 ms 400 ms 1.175 ms
80% 239 ms 77 ms 248 ms 466 ms 763 ms 1.752 ms

Desempenho S2

Consultas por segundo

O gráfico a seguir mostra a carga de consulta mais alta que um serviço pode manipular por um longo período em termos de consultas por segundo (QPS).

Highest maintainable QPS ecommerce s2

Latência da consulta

A latência da consulta varia de acordo com a carga do serviço e os serviços sob maior estresse têm uma latência média de consulta mais alta. A tabela a seguir mostra os 25º, 50º, 75º, 90º, 95º e 99º percentis de latência de consulta para três níveis de uso diferentes.

Porcentagem máxima de QPS Latência Média 25% 75% 90% 95% 99%
20% 56 ms 21 ms 68 ms 106 ms 132 ms 210 ms
50% 71 ms 26 ms 83 ms 132 ms 177 ms 329 ms
80% 140 ms 47 ms 153 ms 293 ms 452 ms 924 ms

Desempenho S3

Consultas por segundo

O gráfico a seguir mostra a carga de consulta mais alta que um serviço pode manipular por um longo período em termos de consultas por segundo (QPS).

Highest maintainable QPS ecommerce s3

Nesse caso, vemos que a adição de uma segunda partição aumenta significativamente o máximo de QPS, mas a adição de uma terceira partição fornece uma redução de retornos marginais. É provável que ocorra uma melhoria menor porque todos os dados já estão sendo obtidos na memória ativa do S3 com apenas duas partições.

Latência da consulta

A latência da consulta varia de acordo com a carga do serviço e os serviços sob maior estresse têm uma latência média de consulta mais alta. A tabela a seguir mostra os 25º, 50º, 75º, 90º, 95º e 99º percentis de latência de consulta para três níveis de uso diferentes.

Porcentagem máxima de QPS Latência Média 25% 75% 90% 95% 99%
20% 50 ms 20 ms 64 ms 83 ms 98 ms 160 ms
50% 62 ms 24 ms 80 ms 107 ms 130 ms 253 ms
80% 115 ms 38 ms 121 ms 218 ms 352 ms 828 ms

Detalhes do cenário

  • Contagem de documentos: 7,5 milhões
  • Tamanho do índice: 22 GB
  • Esquema de índice: 23 campos; 8 pesquisáveis, 10 filtráveis/com facetas
  • Tipos de consulta: pesquisas de palavra-chave com facetas e realce de cliques

Desempenho S1

Consultas por segundo

O gráfico a seguir mostra a carga de consulta mais alta que um serviço pode manipular por um longo período em termos de consultas por segundo (QPS).

Highest maintainable QPS doc search s1

Latência da consulta

A latência da consulta varia de acordo com a carga do serviço e os serviços sob maior estresse têm uma latência média de consulta mais alta. A tabela a seguir mostra os 25º, 50º, 75º, 90º, 95º e 99º percentis de latência de consulta para três níveis de uso diferentes.

Porcentagem máxima de QPS Latência Média 25% 75% 90% 95% 99%
20% 67 ms 44 ms 77 ms 103 ms 126 ms 216 ms
50% 93 ms 59 ms 110 ms 150 ms 184 ms 304 ms
80% 150 ms 96 ms 184 ms 248 ms 297 ms 424 ms

Desempenho S2

Consultas por segundo

O gráfico a seguir mostra a carga de consulta mais alta que um serviço pode manipular por um longo período em termos de consultas por segundo (QPS).

Highest maintainable QPS doc search s2

Latência da consulta

A latência da consulta varia de acordo com a carga do serviço e os serviços sob maior estresse têm uma latência média de consulta mais alta. A tabela a seguir mostra os 25º, 50º, 75º, 90º, 95º e 99º percentis de latência de consulta para três níveis de uso diferentes.

Porcentagem máxima de QPS Latência Média 25% 75% 90% 95% 99%
20% 45 ms 31 ms 55 ms 73 ms 84 ms 109 ms
50% 63 ms 39 ms 81 ms 106 ms 123 ms 163 ms
80% 115 ms 73 ms 145 ms 191 ms 224 ms 291 ms

Desempenho S3

Consultas por segundo

O gráfico a seguir mostra a carga de consulta mais alta que um serviço pode manipular por um longo período em termos de consultas por segundo (QPS).

Highest maintainable QPS doc search s3

Latência da consulta

A latência da consulta varia de acordo com a carga do serviço e os serviços sob maior estresse têm uma latência média de consulta mais alta. A tabela a seguir mostra os 25º, 50º, 75º, 90º, 95º e 99º percentis de latência de consulta para três níveis de uso diferentes.

Porcentagem máxima de QPS Latência Média 25% 75% 90% 95% 99%
20% 43 ms 29 ms 53 ms 74 ms 86 ms 111 ms
50% 65 ms 37 ms 85 ms 111 ms 128 ms 164 ms
80% 126 ms 83 ms 162 ms 205 ms 233 ms 281 ms

Observações

Por meio desses parâmetros de comparação, você pode ter uma ideia do desempenho que a IA do Azure Search oferece. Você também pode ver a diferença entre os serviços em diferentes camadas.

Algumas das principais maneiras de usar esses parâmetros de comparação são:

  • Um S2 normalmente pode manipular pelo menos quatro vezes o volume de consulta como um S1
  • Um S2 normalmente tem menor latência do que um S1 em volumes de consulta comparáveis
  • À medida que você adiciona réplicas, o QPS de um serviço pode lidar normalmente com escala linear (por exemplo, se uma réplica puder lidar com 10 QPS, então cinco réplicas normalmente podem lidar com 50 QPS)
  • Quanto maior a carga no serviço, maior será a latência média

Você também pode ver que o desempenho pode variar drasticamente entre os cenários. Se você não estiver obtendo o desempenho esperado, confira as dicas para obter um melhor desempenho.

Próximas etapas

Agora que já viu os parâmetros de desempenho, você pode aprender mais sobre como analisar o desempenho e os fatores principais da IA do Azure Search que influenciam o desempenho.