Como melhorar a velocidade de pesquisa de uma consulta no Elastic Search?
O host é AWS da ElasticSearch, tenho 2 TB de dados armazenados em 6 nós e em 30 índices com 10 fragmentos cada. Uma pesquisa simples em todos os índices é muito lenta e leva alguns minutos.
Onde cometi o erro? Isso é normal ou tenho configurações incorretas ou talvez tenha muitos dados armazenados?
Minhas configurações de cluster:
"search": {
"max_queue_size": "1000",
"queue_size": "1000",
"size": "4",
"auto_queue_frame_size": "2000",
"target_response_time": "1s",
"min_queue_size": "1000"
},
Configurações de meus nós:
"os": {
"refresh_interval_in_millis": 1000,
"name": "Linux",
"pretty_name": "CentOS Linux 7 (Core)",
"arch": "amd64",
"version": "4.15.0-1039-aws",
"available_processors": 32,
"allocated_processors": 2
}
Obrigado!
Respostas
É uma questão muito ampla com muito menos informações. Você poderia fornecer mais informações como:
- Quantos dados você tem e tamanho de cada fragmento.
- Exemplos de consultas de pesquisa com o tempo médio gasto.
- tamanho do heap dos nós de dados e por que você tem
allocated_processors
muito menos (2) do que os processadores disponíveis (32) - Quantos documentos você está obtendo em sua consulta de pesquisa, ou seja, parâmetro de tamanho.
- Latência de pesquisa em relação ao número de chamadas de pesquisa
- Pesquisar logs lentos de elasticsearch (ES)
Você pode consultar minhas 10 dicas sobre como melhorar o desempenho de pesquisa e também me dizer os valores de alguns parâmetros mencionados nas dicas, também pode tentar a ferramenta de otimizador de cluster para ajustar as configurações de cluster e nós do ES.
Conforme discutido no comentário, consulte o blog de log lento de pesquisa do opster para depurar problemas com mais eficiência.
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica
Isso é muito. O tamanho da meta para um fragmento deve ser em torno de 50 Gb. Com sua configuração, você tem cerca de 5 Gb cada. Você pode reduzir para 5 fragmentos ou menos e forçar a fusão para 1 segmento. As performances devem ser melhoradas muito.
Depois disso, dê uma olhada em outros bons conselhos fornecidos por Optsters em seu blog. Todos eles são relevantes.