¿Cómo mejorar la velocidad de búsqueda de una consulta en Elastic Search?
El host es AWS de ElasticSearch, tengo 2 TB de datos almacenados en 6 nodos y en 30 índices con 10 fragmentos cada uno. Una búsqueda simple en todos los índices es muy, muy lenta y lleva unos minutos.
¿Dónde cometí el error? ¿Es eso normal o tengo una mala configuración o tal vez tengo demasiados datos almacenados?
Mi configuración de clúster:
"search": {
"max_queue_size": "1000",
"queue_size": "1000",
"size": "4",
"auto_queue_frame_size": "2000",
"target_response_time": "1s",
"min_queue_size": "1000"
},
Configuración de mis nodos:
"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
}
¡Gracias!
Respuestas
Es una pregunta muy amplia con muy menos información, ¿puede proporcionar más información como:
- Cuántos datos tienes y tamaño de cada fragmento.
- Consultas de búsqueda de muestra con su tiempo medio empleado.
- tamaño del montón de nodos de datos y por qué tiene
allocated_processors
muy menos (2) que los procesadores disponibles (32) - Cuántos documentos está obteniendo en su consulta de búsqueda, es decir, parámetro de tamaño.
- Latencia de búsqueda wrt a no de llamadas de búsqueda
- Buscar registros lentos de elasticsearch (ES)
Puede consultar mis 10 consejos para mejorar el rendimiento de búsqueda y también decirme los valores de algunos parámetros mencionados en los consejos, también puede probar la herramienta de optimización de clústeres para ajustar la configuración de clústeres y nodos de ES.
Como se discutió en el comentario, consulte el blog de registro lento de búsqueda de opster para depurar el problema de manera más eficiente.
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica
Eso es demasiado. El tamaño objetivo de un fragmento debe ser de alrededor de 50 Gb. Con su configuración, está más alrededor de 5 Gb cada uno. Puede reducir a 5 fragmentos o menos y forzar la fusión a 1 segmento. Las actuaciones deberían mejorarse mucho.
Después de eso, mire otros buenos consejos proporcionados por Optsters en su blog. Todos son relevantes.