Entrar ou criar conta

Upnetix Labs · protocolo de experimento

Protocolo: Qual o impacto do número de shards no tempo de resposta de buscas simples no Elasticsearch?

Este protocolo avalia como o número de shards de um índice afeta a latência de consultas de busca simples no Elasticsearch. O objetivo é medir o tempo de resposta médio sob diferentes configurações de shards, mantendo o volume de dados e hardware constantes.

Elasticsearch do zero à busca corporativa
Ligado ao treinamento Elasticsearch do zero à busca corporativa
Protocolo, não resultado. Esta página descreve como medir. Execução pela engenharia Upnetix: ainda não realizada. Nenhum valor aqui é resultado de medição da Upnetix; os números que valem são os que você obtém na sua bancada.
Pergunta

Como o tempo de resposta de buscas simples varia conforme o número de shards em um índice Elasticsearch, mantendo o volume de dados constante?

Hipótese

Aumentar o número de shards além de um certo ponto eleva a latência média das buscas simples, devido ao overhead de coordenação.

Variáveis

Independentes (o que varia)número de shards do índice
Dependentes (o que se mede)tempo de resposta (latência) das buscas simples
Controladas (o que fica fixo)volume total de dados indexados; tipo e quantidade de documentos; hardware do nó; número de réplicas; versão do Elasticsearch; tipo de consulta (match_all)

Ambiente

Cluster Elasticsearch de código aberto (licença Apache 2.0), versão estável (consulte a documentação), rodando em um único nó dedicado, com hardware fixo. Ferramenta de geração de carga: k6 (https://k6.io/), configurada para executar consultas HTTP REST. Dados sintéticos indexados via bulk API, mantendo volume e estrutura idênticos entre os testes.

Procedimento

  1. Preparar ambiente

    Instale Elasticsearch e k6 nas versões recomendadas pela documentação oficial.

  2. Gerar dados

    Crie um conjunto fixo de documentos sintéticos (por exemplo, 1 milhão de registros EXEMPLO) e salve em arquivo JSON.

  3. Criar índice

    Para cada teste, crie um novo índice com um número específico de shards (ex: 1, 2, 4, 8, 16).

    PUT /indice_teste_{N} { "settings": { "number_of_shards": N, "number_of_replicas": 0 } }
  4. Indexar dados

    Carregue exatamente o mesmo conjunto de documentos no índice criado.

  5. Executar consultas

    Utilize k6 para enviar consultas 'match_all' concorrentes ao índice, simulando 10 usuários simultâneos EXEMPLO, por 5 minutos.

    k6 run script.js
  6. Coletar métricas

    Registre o tempo de resposta de cada consulta (latência em milissegundos).

  7. Repetir

    Repita o teste para cada configuração de shards, sempre reindexando os dados.

Planilha de coleta

num_shards (unidade)tempo_resposta_ms (ms)percentil_95_ms (ms)usuarios_concorrentes (unidade)volume_dados_mb (MB)
EXEMPLO: 4, 120, 180, 10, 500

Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.

Análise

Calcule a média e o percentil 95 do tempo de resposta para cada configuração de shards. Compare os valores para identificar o ponto de inflexão em que o aumento de shards começa a prejudicar a latência. Analise a variação entre repetições para garantir consistência.

Critérios de decisão

  • A latência média e o percentil 95 devem ser estáveis entre repetições.
  • Identificar o número de shards com menor latência sem aumento significativo de overhead.

Fontes de erro e mitigação

  • Variação de carga no hardware: execute os testes em horários de baixa interferência.
  • Cache do Elasticsearch: reinicie o serviço entre repetições para evitar influência de cache.
  • Rede: use ambiente local ou isolado para evitar latências externas.
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
0 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.