tutorial support query not multi español does cutoff_frequency elasticsearch lucene

elasticsearch - support - query dsl kibana



¿Cómo ElasticSearch y Lucene comparten la memoria (2)

Tengo una pregunta sobre la siguiente cuota del documento oficial de ES:

But if you give all available memory to Elasticsearch’s heap, there won’t be any left over for Lucene. This can seriously impact the performance of full-text search.

Si mi servidor tiene memoria bin/elasticsearch -xmx 30g el siguiente comando para iniciar el nodo ES: bin/elasticsearch -xmx 30g Eso significa que solo le doy el proceso de ES 30g de memoria como máximo. ¿Cómo puede Lucene usar el 50G izquierdo, ya que Lucene se está ejecutando en el proceso ES, es solo parte del proceso.


El parámetro Xmx simplemente indica cuánto montón Xmx al proceso ES Java. Pero asignar RAM al montón no es la única forma de usar la memoria disponible en un servidor.

Lucene sí se ejecuta dentro del proceso de ES, pero Lucene no solo hace uso del montón asignado, sino que también utiliza la memoria aprovechando al máximo la memoria caché del sistema de archivos para administrar los archivos del segmento de índice.

Hubo estas dos grandes publicaciones de blog ( esta y esta otra ) del comisionado principal de Lucene que explican en mayor detalle cómo Lucene aprovecha toda la memoria restante disponible.

La conclusión es asignar un montón de 30 GB al proceso ES (usando -Xmx30g ) y luego Lucene consumirá felizmente lo que quede para hacer lo que se necesita hacer.


Lucene usa la memoria de almacenamiento dinámico a través del sistema operativo. Se describe en la guía Elasticsearch en la sección sobre el tamaño e intercambio de Heap .

Lucene está diseñado para aprovechar el sistema operativo subyacente para el almacenamiento en caché de las estructuras de datos en memoria. Los segmentos Lucene se almacenan en archivos individuales. Debido a que los segmentos son inmutables, estos archivos nunca cambian. Esto los hace muy amigables con la caché, y el sistema operativo subyacente mantendrá contentos a los segmentos activos residentes en la memoria para un acceso más rápido.