Partilhar via


Estimar e gerir a capacidade de um serviço de pesquisa

No Azure AI Search, a capacidade é baseada em réplicas e partições que podem ser dimensionadas para sua carga de trabalho. As réplicas são cópias do motor de pesquisa. As divisórias são unidades de armazenamento. Cada novo serviço de pesquisa começa com uma de cada, mas pode-se adicionar ou remover réplicas e partições independentemente para acomodar cargas de trabalho flutuantes. Adicionar capacidade aumenta o custo de execução de um serviço de pesquisa.

As características físicas das réplicas e partições, como velocidade de processamento e E/S do disco, variam de acordo com o nível de preço. Num serviço de pesquisa padrão, as réplicas e partições são mais rápidas e maiores do que as de um serviço básico.

A mudança de capacidade não é instantânea. Pode levar até uma hora para comissionar ou desativar partições, especialmente em serviços com grandes quantidades de dados.

Ao dimensionar um serviço de pesquisa, você pode escolher entre as seguintes ferramentas e abordagens:

Nota

Se o seu serviço foi criado antes de abril ou maio de 2024, uma atualização única para limites de armazenamento mais altos pode estar disponível sem custo extra. Para obter mais informações, consulte Atualizar seu serviço de pesquisa.

Conceitos: unidades de pesquisa, réplicas, partições

A capacidade é expressa em unidades de pesquisa que podem ser alocadas em combinações de partições e réplicas.

Conceito Definição
Unidade de pesquisa Um único incremento da capacidade total disponível (36 unidades). É necessário um mínimo de uma unidade para executar o serviço. O par inicial de réplica e partição constitui a primeira unidade de pesquisa. No entanto, cada instância extra de uma réplica ou partição consome uma unidade de pesquisa adicional. Por exemplo, você começa com uma réplica e partição (uma unidade de pesquisa), adiciona uma segunda réplica, agora está consumindo duas unidades de pesquisa. Uma unidade de pesquisa também é a unidade de cobrança de um serviço de Pesquisa de IA do Azure.
Réplica Instâncias do serviço de pesquisa, usadas principalmente para balanceamento de carga em operações de consulta. Cada réplica hospeda uma cópia de um índice. Se você alocar três réplicas, terá três cópias de um índice disponíveis para atender às solicitações de consulta.
Partição Armazenamento físico e E/S para operações de leitura/gravação (por exemplo, ao reconstruir ou atualizar um índice). Cada partição tem uma fatia do índice total. Caso aloque três partições, o seu índice será dividido em terços.

Analise a tabela de partições e réplicas para obter possíveis combinações que permaneçam abaixo do limite de 36 unidades.

Quando adicionar capacidade

Inicialmente, um serviço recebe um nível mínimo de recursos que consistem em uma partição e uma réplica. A camada escolhida determina o tamanho e a velocidade da partição, e cada camada é otimizada em torno de um conjunto de características que se ajustam a vários cenários. Se você escolher uma camada mais avançada, talvez precise de menos partições do que se optar pelo S1. Uma das perguntas que você precisa responder por meio de testes autodirigidos é se uma partição maior e mais cara produz melhor desempenho do que duas partições mais baratas em um serviço provisionado em um nível mais baixo.

Um único serviço deve ter recursos suficientes para lidar com todas as cargas de trabalho (indexação e consultas). Nenhuma das cargas de trabalho é executada em segundo plano. Você pode agendar a indexação para momentos em que as solicitações de consulta são naturalmente menos frequentes, mas o serviço não prioriza uma tarefa em detrimento de outra. Além disso, uma certa quantidade de redundância suaviza o desempenho das consultas quando os serviços ou nós são atualizados internamente.

As diretrizes para determinar se a capacidade deve ser adicionada incluem:

  • Garantir os critérios de alta disponibilidade para contratos de nível de serviço.
  • A frequência de erros HTTP 503 (Serviço indisponível) está aumentando.
  • A frequência de erros HTTP 429 (muitas solicitações) está aumentando, uma indicação de baixo armazenamento.
  • São esperados grandes volumes de consulta.
  • Uma atualização única para uma infraestrutura mais recente e partições maiores não é suficiente.
  • O número atual de partições não é adequado para indexar cargas de trabalho.

Como regra geral, as aplicações de pesquisa tendem a precisar de mais réplicas do que partições, especialmente quando as operações do serviço estão mais orientadas para cargas de trabalho de consulta. Cada réplica é uma cópia do seu índice, permitindo que o serviço balanceie a carga de solicitações em relação a várias cópias. O Azure AI Search gerencia todo o balanceamento de carga e replicação de um índice, e você pode alterar o número de réplicas alocadas para seu serviço a qualquer momento. Você pode alocar até 12 réplicas em um serviço de pesquisa padrão e 3 réplicas em um serviço de pesquisa Básico. A alocação de réplicas pode ser feita através do portal do Azure ou de uma das opções de programação.

Partições extras são úteis para cargas de trabalho de indexação intensivas. Partições extras espalham operações de leitura/gravação por um número maior de recursos de computação.

Finalmente, índices maiores levam mais tempo para consultar. Assim, poderá descobrir que cada incremento nas partições requer um aumento menor, mas proporcional, nas réplicas. A complexidade das suas consultas e o volume de consultas influenciam a rapidez com que a execução da consulta é concluída.

Nota

Adicionar mais réplicas ou partições aumenta o custo de execução do serviço e pode introduzir pequenas variações na forma como os resultados são ordenados. Certifique-se de verificar a calculadora de preços para entender as implicações de faturamento da adição de mais nós. O gráfico abaixo pode ajudá-lo a fazer referência cruzada ao número de unidades de pesquisa necessárias para uma configuração específica. Para obter mais informações sobre como réplicas extras afetam o processamento de consultas, consulte Ordenando resultados.

Como atualizar a capacidade

Alguns recursos do Azure AI Search estão disponíveis apenas para novos serviços. Uma dessas capacidades é a maior capacidade de armazenamento, que se aplica a serviços criados após abril de 2024. No entanto, se você criou seu serviço antes de abril de 2024, poderá obter maior capacidade sem recriar o serviço executando uma atualização única. Para obter mais informações, consulte Atualizar seu serviço de pesquisa.

Como alterar a capacidade

Para aumentar ou diminuir a capacidade do seu serviço, você tem duas opções:

Adicionar ou remover partições e réplicas

  1. Entre no portal do Azure e selecione seu serviço de pesquisa.

  2. No painel esquerdo, selecione Escala de configurações>.

    A captura de ecrã a seguir mostra um serviço Standard provisionado com uma réplica e uma partição. A fórmula na parte inferior indica quantas unidades de pesquisa estão a ser utilizadas (1). Se o preço unitário fosse de US $ 100 (não um preço real), o custo mensal de execução deste serviço seria de US $ 100 em média.

    Captura de tela da página Escala mostrando os valores atuais de réplica e partição.

  3. Use o controle deslizante para aumentar ou diminuir o número de partições. Selecione Salvar.

    Este exemplo adiciona uma segunda réplica e uma partição. Nota a contagem das unidades de pesquisa; agora são quatro porque a fórmula de faturação é o número de réplicas multiplicado pelo número de partições (2 x 2). A duplicação da capacidade mais do que duplica o custo de funcionamento do serviço. Se o custo unitário de pesquisa fosse de US $ 100, a nova conta mensal agora seria de US $ 400.

    Para obter os custos unitários atuais de cada nível, visite a página de preços.

    Captura de ecrã da página Escala com réplicas e partições adicionadas.

  4. Verifique as notificações para confirmar que a operação foi iniciada.

    Captura de ecrã da notificação da operação de dimensionamento no portal do Azure.

    Esta operação pode levar várias horas para ser concluída. Não é possível cancelar o processo depois que ele é iniciado, e não há monitoramento em tempo real dos ajustes de réplica e partição. No entanto, a mensagem a seguir é exibida enquanto as alterações estão em andamento.

    Captura de ecrã da mensagem Atualizar no portal do Azure.

Alterar o nível de preços

Nota

A versão 2025-02-01-preview suporta alterações entre os escalões Básico e Standard (S1, S2 e S3). Atualmente, você só pode alternar de uma camada inferior para uma camada mais alta, como passar de Basic para S1. Sua região também não pode ter restrições de capacidade no nível superior.

O seu nível de preços determina o armazenamento máximo do seu serviço de pesquisa. Se precisar de mais capacidade, você pode mudar para um nível de preço diferente que atenda às suas necessidades de armazenamento.

Além da capacidade, alterar a camada de preços afeta a carga de trabalho e os limites máximos do serviço. Antes de prosseguir, compare os limites de serviço da camada atual e da camada desejada. Estes incluem limites para:

  • Armazenamento de partições
  • Índices
  • Vetores
  • Indexadores
  • Recursos de link privado compartilhado
  • SINÔNIMOS
  • Aliases de índice
  • Regulação semântica de throughput do ranker

Geralmente, mudar para um nível mais alto aumenta o limite de armazenamento e o limite de vetores, aumenta a taxa de transferência de solicitações e diminui a latência.

Para alterar o seu nível de preços:

  1. Entre no portal do Azure e selecione seu serviço de pesquisa.

  2. No painel esquerdo, selecione Escala de configurações>.

  3. No seu nível atual, selecione Alterar Nível de Preço.

    Captura de ecrã do botão Alterar Escalão de Preços no portal do Azure.

  4. Na página Selecionar Nível de Preço , escolha um nível mais alto na lista. Atualmente, você só pode subir entre Basic, S1, S2 e S3. Outros níveis de preços não estão disponíveis e aparecem atenuados.

  5. Para alternar para a camada superior, selecione Selecionar.

    Captura de ecrã da página Selecionar Escalão de Preços e da lista de escalões superiores no portal do Azure.

    Esta operação pode levar várias horas para ser concluída. Não é possível cancelar o processo depois que ele é iniciado e não há monitoramento em tempo real das alterações de camada. No entanto, na página Visão geral , um status de provisionamento indica que a operação está em andamento para o seu serviço.

    Captura de tela da página Visão geral do serviço com um status de provisionamento.

Como as solicitações de escala são tratadas

Após a receção de um pedido de escala, o serviço de pesquisa:

  1. Verifica se a solicitação é válida.
  2. Inicia o backup de dados e informações do sistema.
  3. Verifica se o serviço já está num estado de provisionamento (atualmente a adicionar ou eliminar réplicas ou partições).
  4. Inicia o provisionamento.

O dimensionamento de um serviço pode levar apenas 15 minutos ou bem mais de uma hora, dependendo do tamanho do serviço e do escopo da solicitação. O backup pode levar vários minutos, dependendo da quantidade de dados e do número de partições e réplicas.

As etapas acima não são totalmente consecutivas. Por exemplo, o sistema inicia o provisionamento quando pode fazê-lo com segurança, o que pode ocorrer enquanto o backup está acabando.

Erros durante o dimensionamento

A mensagem de erro "As operações de atualização de serviço não são permitidas neste momento porque estamos processando uma solicitação anterior" é causada pela repetição de uma solicitação para reduzir ou aumentar quando o serviço já está processando uma solicitação anterior.

Resolva esse erro verificando o status do serviço para verificar o status do provisionamento:

  1. Use a API REST de gerenciamento, o Azure PowerShell ou a CLI do Azure para obter o status do serviço.
  2. Chame Get Service (REST) ou equivalente para o PowerShell ou a CLI.
  3. Verifique a resposta para "provisioningState": "provisioning"

Se o estado for "Provisionamento", aguarde que a solicitação seja concluída. O status deve ser "Bem-sucedido" ou "Falhado" antes que outra solicitação seja tentada. Não há status para backup. O backup é uma operação interna e é improvável que seja um fator em qualquer interrupção de um exercício em grande escala.

Se o serviço de busca parecer estar parado num estado de provisionamento, verifique se existem índices órfãos que são inutilizáveis, com volume de consultas zero e sem atualizações dos índices. Um índice inutilizável pode bloquear alterações na capacidade de serviço. Em particular, procure por índices que são criptografados por CMK, cujas chaves não são mais válidas. Você deve excluir o índice ou restaurar as chaves para recolocar o índice online e desbloquear a sua operação de escala.

As combinações de partição e réplica

O gráfico a seguir se aplica à camada Standard e superior. Ele mostra todas as combinações possíveis de partições e réplicas, sujeito ao máximo de 36 unidades de pesquisa por serviço.

1 partição 2 divisórias 3 partições 4 divisórias 6 partições 12 divisórias
1 réplica 1 SU 2 SU 3 SU 4 SU 6 SU 12 SU
2 réplicas 2 SU 4 SU 6 SU 8 SU 12 SU 24 SU
3 réplicas 3 SU 6 SU 9 SU 12 SU 18 SU 36 SU
4 réplicas 4 SU 8 SU 12 SU 16 SU 24 SU N/A
5 réplicas 5 SU 10 SU 15 SU 20 SU 30 SU N/A
6 réplicas 6 SU 12 SU 18 SU 24 SU 36 SU N/A
12 réplicas 12 SU 24 SU 36 SU N/A N/A N/A

Os serviços de pesquisa básica têm contagens de unidades de pesquisa mais baixas.

  • Nos serviços de pesquisa criados antes de 3 de abril de 2024, os Serviços Básicos podem ter exatamente uma partição e até três réplicas para um limite máximo de três SUs. O único recurso ajustável são as réplicas. No entanto, você pode aumentar sua contagem de partições atualizando seu serviço.

  • Nos serviços de pesquisa criados após 3 de abril de 2024 em regiões suportadas, os serviços básicos podem ter até três partições e três réplicas. O limite máximo de SU é de nove para suportar um complemento completo de partições e réplicas.

Para garantir alta disponibilidade nas consultas de serviços de pesquisa em qualquer plano pago, independentemente da data de criação, é necessário um mínimo de duas réplicas.

Para obter taxas de cobrança por camada e moeda, consulte a página de preços do Azure AI Search.

Estimar a capacidade usando um nível tarifável

O tamanho dos índices que você espera criar determina as necessidades de armazenamento. Não há heurísticas ou generalidades sólidas que ajudem nas estimativas. A única maneira de determinar o tamanho de um índice é construir um. Seu tamanho é baseado na tokenização e incorporações, e se você habilita sugestões, filtragem e classificação, ou pode tirar proveito da compactação vetorial.

Recomendamos estimar num nível passível de faturação, Básico ou superior. O nível Gratuito é executado em recursos físicos compartilhados por vários clientes e está sujeito a fatores fora do seu controle. Somente os recursos dedicados de um serviço de pesquisa faturável podem acomodar maiores tempos de amostragem e processamento para estimativas mais realistas de quantidade, tamanho e volumes de consulta de índice durante o desenvolvimento.

  1. Analise os limites de serviço em cada camada para determinar se as camadas inferiores podem suportar o número de índices de que você precisa. Considere se você precisa de várias cópias de um índice para desenvolvimento, teste e produção ativos.

    Um serviço de pesquisa está sujeito a limites de objetos (número máximo de índices, indexadores, conjuntos de habilidades, etc.) e limites de armazenamento. Qualquer que seja o limite atingido primeiro é o limite efetivo.

  2. Crie um serviço em um nível faturável. As camadas são otimizadas para determinadas cargas de trabalho. Por exemplo, o nível Otimizado para armazenamento tem um limite de 10 índices porque foi projetado para oferecer suporte a um número baixo de índices grandes.

    • Comece baixo, em Basic ou S1, se não tiver certeza sobre a carga projetada.

    • Comece alto, em S2 ou mesmo S3, se o teste incluir indexação em grande escala e cargas de consulta.

    • Comece com Armazenamento otimizado, em L1 ou L2, se você estiver indexando uma grande quantidade de dados e a carga de consulta for relativamente baixa, como em um aplicativo de negócios interno.

  3. Crie um índice inicial para determinar como os dados de origem se traduzem em um índice. Esta é a única maneira de estimar o tamanho do índice. Os atributos nas definições de campo afetam os requisitos de armazenamento físico:

  4. Monitore o armazenamento, os limites de serviço, o volume de consultas e a latência no portal do Azure. O portal do Azure mostra consultas por segundo, consultas sujeitas a limitação e latência de pesquisa. Todos esses valores podem ajudá-lo a decidir se você selecionou a camada correta.

  5. Adicione réplicas para alta disponibilidade ou para mitigar o desempenho lento das consultas.

    Não há diretrizes sobre quantas réplicas são necessárias para acomodar cargas de consulta. O desempenho da consulta depende da complexidade da consulta e das cargas de trabalho concorrentes. Embora a adição de réplicas resulte claramente em melhor desempenho, o resultado não é estritamente linear: adicionar três réplicas não garante uma taxa de transferência tripla. Para obter orientação sobre como estimar o QPS para sua solução, consulte Analisar desempenhoe monitorar consultas.

Para um índice invertido, o tamanho e a complexidade são determinados pelo conteúdo, não necessariamente pela quantidade de dados que você alimenta nele. Uma fonte de dados grande com alta redundância pode resultar em um índice menor do que um conjunto de dados menor que contém conteúdo altamente variável. Portanto, raramente é possível inferir o tamanho do índice com base no tamanho do conjunto de dados original.

Os requisitos de armazenamento podem ser inflados se você incluir dados que nunca serão pesquisados. Idealmente, os documentos contêm apenas os dados de que necessita para a experiência de pesquisa.

Considerações sobre o contrato de nível de serviço

As funcionalidades do nível gratuito e as de visualização não são cobertas por SLAs (acordos de nível de serviço). Para todos os níveis faturáveis, os SLAs entram em vigor quando você provisiona redundância suficiente para seu serviço.

  • Duas ou mais réplicas satisfazem SLAs de consulta (leitura).

  • Três ou mais réplicas satisfazem os SLAs de consulta e indexação (leitura e escrita).

O número de partições não afeta os SLAs.

Próximos passos