Elasticsearch estableix la mida màxima de memòria

Elasticsearch Estableix La Mida Maxima De Memoria



'La memòria és un recurs essencial però limitat quan es treballa amb Elasticsearch. Això és perquè Lucene farà ús de tota la memòria disponible. Tanmateix, quan es configura malament, la configuració de la memòria pot provocar un baix rendiment i un ús ineficient de la memòria'.

En aquest tutorial, us mostrarem la configuració màxima i mínima de JVM Heap Size quan treballeu amb Elasticsearch.







Comencem.



Què és una memòria Heap?

En el context d'Elasticsearch, la memòria Heap fa referència a la quantitat total de memòria assignada a la màquina virtual Java dins d'un node d'Elasticsearch.



Elasticsearch establirà per defecte la mida del munt de JVM en funció de la memòria total del sistema base i del paper del node. Això vol dir que l'assignació de la mida de la memòria del munt pot variar en funció de si es tracta d'un node mestre, de dades, d'ingestió, de data_cold, etc.





Per a la majoria d'entorns de producció, és recomanable i més que suficient permetre que Elasticsearch gestioni la mida de l'emmagatzematge dinàmic.

NOTA : Si esteu executant Elasticsearch a Docker, la memòria total de l'emmagatzematge dinàmic es basa en la mida total del contenidor docker i no en l'amfitrió del Docker.



Configuració de la mida mínima i màxima d'heap

Per configurar la mida mínima i màxima de l'emmagatzematge dinàmic, podem utilitzar els paràmetres Xms i Xmx. Els probits d'Elasticsearch estan establint la memòria màxima a no més del 50% de la memòria total. Això es deu al fet que, a part de JVM Heap, Elasticsearch requereix més memòria per a altres operacions, com ara la memòria cau del sistema de fitxers, la comunicació de xarxa, etc. De la mateixa manera, la JVM utilitzarà una secció del 50% restant de memòria.

En segon lloc, no configureu els valors xms i xmx a més del llindar dels oops. Per a una configuració segura, limiteu-la a 26 GB o 30 GB en alguns sistemes.

Podeu comprovar el llindar al registre d'Elasticsearch.

cat elasticsearch.log | grep 'apuntadors d'objectes'

Hauríeu de veure una entrada com es mostra:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] mida de la pila [1,9 gb], punters d'objectes normals comprimits [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] mida de la pila [1,9 GB], punters d'objectes normals comprimits [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] mida de la pila [1,9 gb], punters d'objectes normals comprimits [true]

També podeu consultar l'API d'informació de nodes per als valors xms i xmx:

curl -X GET localhost:9200/_nodes/_all/jvm?pretty

Hauríeu de veure una sortida com es mostra:

Estableix la mida mínima i màxima de la pila

Per modificar els valors de la mida de l'emmagatzematge dinàmic de la JVM, heu d'afegir un fitxer de configuració al directori /etc/elasticsearch/jvm.options.d. Aquest fitxer hauria d'acabar amb l'extensió .options.

Per exemple:

$ sudo touch /etc/elasticsearch/jvm.options.d/heap.options

Editeu el fitxer

$ sudo nano /etc/elasticsearch/jvm.options.d/heap.options

Afegiu la mida de memòria d'emmagatzematge màxim i mínima desitjada.

Per exemple, l'entrada següent configura la mida mínima i màxima de l'emmagatzematge dinàmic a 4 GB.

Deseu el fitxer i reinicieu el servei Elasticsearch.

Conclusió

En aquest tutorial, heu après el munt JVM en el context d'Elasticsearch, com Elasticsearch configura el munt JVM i com podeu modificar la mida del munt.

Gràcies per llegir!!