Elasticsearch establece el tamaño de la memoria máxima

Elasticsearch establece el tamaño de la memoria máxima

“La memoria es un recurso esencial pero limitado cuando se trabaja con Elasticsearch. Esto se debe a que Lucene utilizará cada memoria disponible. Sin embargo, cuando se configúan mal, la configuración de la memoria puede conducir a un bajo rendimiento y un uso de memoria ineficiente."

En este tutorial, le mostraremos la configuración de tamaño de montón JVM máxima y mínima cuando trabaje con Elasticsearch.

Empecemos.

¿Qué es una memoria de montón??

En el contexto de ElasticSearch, la memoria de Heap se refiere a la cantidad total de memoria asignada a la máquina virtual Java dentro de un nodo Elasticsearch.

Elasticsearch establecerá el valor predeterminado del tamaño JVM en función de la memoria total del sistema base y el papel del nodo. Esto significa que la asignación del tamaño de la memoria del montón puede variar según si se trata de un nodo maestro, datos, ingest, data_cold, etc.

Para la mayoría de los entornos de producción, se recomienda elasticsearch administrar el tamaño del montón y más que suficiente.

NOTA: Si está ejecutando ElasticSearch en Docker, la memoria total de almacenamiento de almacenamiento total se basa en el tamaño total del contenedor Docker y no el host del Docker.

Configuración del tamaño mínimo y máximo del montón

Para configurar el tamaño de montón mínimo y máximo, podemos usar los parámetros XMS y XMX. Elasticsearch Probits está estableciendo la memoria máxima en no más del 50% de la memoria total. Esto se debe a que aparte de JVM Heap, Elasticsearch requiere más memoria para otras operaciones, como el caché del sistema de archivos, la comunicación de red, etc. Del mismo modo, el JVM usará una sección de la memoria del 50% restante.

En segundo lugar, no establezca los valores XMS y XMX en más que el umbral de los UPS. Para una configuración segura, limite a 26 GB o 30 GB en algunos sistemas.

Puede verificar el umbral en el registro de Elasticsearch.

Cat elasticsearch.registro | Grep "Punteros de objeto"

Debería ver una entrada como se muestra:

[2022-08-19T20: 01: 50,275] [Info] [O.mi.mi.Nodeenvironment] [Debian11] Tamaño del montón [1.9GB], punteros de objetos ordinarios comprimidos [Verdadero]
[2022-08-19T20: 08: 07,207] [Info] [O.mi.mi.Nodeenvironment] [Debian11] Tamaño del montón [1.9GB], punteros de objetos ordinarios comprimidos [Verdadero]
[2022-08-19T20: 36: 47,244] [Info] [O.mi.mi.Nodeenvironment] [Debian11] Tamaño del montón [1.9GB], punteros de objetos ordinarios comprimidos [Verdadero]

También puede consultar la API de información de los nodos para los valores XMS y XMX:

curl -x get localhost: 9200/_nodes/_All/jvm?bonito

Debería ver una salida como se muestra:

Establezca el minumum y el tamaño máximo del montón

Para modificar los valores del tamaño de montón JVM, debe agregar un archivo de configuración en/etc/elasticsearch/jvm.opción.D Directorio. Este archivo debe terminar con el .Extensión de opciones.

Por ejemplo:

$ sudo touch/etc/elasticsearch/jvm.opción.d/montón.opción

Editar el archivo

$ sudo nano/etc/elasticsearch/jvm.opción.d/montón.opción

Agregue el tamaño mínimo y máximo de la memoria del montón.

Por ejemplo, la siguiente entrada configura el tamaño mínimo y máximo del montón a 4GB.

Guarde el archivo y reinicie el servicio Elasticsearch.

Conclusión

En este tutorial, aprendió el montón JVM en el contexto de Elasticsearch, cómo Elasticsearch configura el montón JVM y cómo puede modificar el tamaño del montón.

Gracias por leer!!