Este documento apresenta uma agenda para projetar o dimensionamento de um cluster Elasticsearch. Primeiro, discute a definição dos dados, incluindo o tipo de dados, buscas e mapeamento. Em seguida, aborda o dimensionamento dos shards com base na análise histórica e simulações. Por fim, discute o dimensionamento do cluster e otimizações como leitura e escrita.
7. Conhecendo seus objetivos
Armazenamento de Logs? Que tipo de Log?
Dados da sua companhia? Que tipo de Dados?
Dados analíticos? Auto complete? Alertas?
Dados geográficos? Full-text?
Por quê vou usar o Elasticsearch para isso?
DEFINIÇÃO DOS DADOS
8. Conhecendo seus dados
Quais dados serão armazenados?
Onde estão estes dados? Como eles estão hoje?
Os dados me atendem na sua forma “bruta”?
É necessário fazer transformações?
Como imagino o processo de carga dos dados e
sincronização?
DEFINIÇÃO DOS DADOS
35. Otimizando Leitura
Utilize réplicas;
Busque em menos campos sempre que possível;
Mantenha dados pré processados na indexação;
Mapeie identificadores apenas como keyword;
Evite ao máximo o uso de scripts;
Ajuste os valores de cache, circuit break;
Busque por datas arredondadas;
39. Otimizando Cluster
Desabilitar Swapping
Memória suficiente para o cache do Filesystem
Use compressão [best_compressione];
Faça o merge dos segmentos [Force Merge]
Quando possível, faça Shrink dos índices;
40. Otimizando Cluster
Tamanho dos Shards/Índices
Modelagem dos documentos;
Não use mapeamento dinâmico para strings;
Use o menor tipo numérico que seja suficiente;
Desabilite as features que vocês não precisa;