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