java elasticsearch out-of-memory heap-memory

Elasticsearch OutOfMemoryError Java Heap Space



out-of-memory heap-memory (2)

Creo que he descubierto el error. Estaba usando ''service'' para ejecutar elasticsearch y, por lo tanto, mis variables de entorno se eliminaron. Tuve que actualizar el /etc/default/elasticsearch elasticsearch con las variables correcct env (específicamente el ES_HEAP_SIZE=16g ).

Hasta ahora está funcionando bien y la aplicación no está cometiendo errores.

Estoy ejecutando un nodo de 8 núcleos, 32 g RAM elasticsearch con 5 fragmentos, 400 millones de documentos (pequeños).

Todo funciona bien hasta que ejecuto una búsqueda agresiva, luego los fragmentos comienzan a fallar con:

java.lang.OutOfMemoryError: Java heap space

He cambiado el tamaño del montón con: export ES_HEAP_SIZE=16g (también ES_MAX_MEM y ES_MIN_MEM a la misma)

También cambió el archivo yml para yml :

bootstrap.mlockall: true

e incluso (recomendado por los documentos de instalación):

sudo sysctl -w vm.max_map_count=262144

Reinicie el servicio y aún no hay ningún impacto, todavía java.lang.OutOfMemoryError: Java heap space

¿Cualquier otra sugerencia? Aparte de no ejecutar consultas agg?

la consulta es:

https://localhost:9200/my_index_name/_search?search_type=count { "aggs": { "distinct_hostname": { "cardinality": { "field": "hostname" } } } }


La forma correcta de actualizar el tamaño de almacenamiento dinámico de Java para Elasticsearch 5 no es EXPORT _JAVA_OPTIONS o EXPORT ES_HEAP_SIZE o el uso de parámetros de línea de comandos. Por lo que puedo decir, todos estos son anulados por un archivo de configuración en su directorio de instalación de config/jvm.options , config/jvm.options . Para cambiar estas configuraciones necesita editar estas líneas en ese archivo:

# Xms represents the initial size of total heap space # Xmx represents the maximum size of total heap space -Xms2g -Xmx2g