Elasticsearch Max geheugengrootte instellen

Elasticsearch Max Geheugengrootte Instellen



“Geheugen is een essentiële maar beperkte hulpbron bij het werken met Elasticsearch. Dit komt omdat Lucene gebruik zal maken van elk beschikbaar geheugen. Bij een verkeerde configuratie kunnen de geheugeninstellingen echter leiden tot lage prestaties en inefficiënt geheugengebruik.”

In deze tutorial laten we je de maximale en minimale JVM Heap Size-configuratie zien wanneer je met Elasticsearch werkt.







Laten we beginnen.



Wat is een heapgeheugen?

In de context van Elasticsearch verwijst Heap-geheugen naar de totale hoeveelheid geheugen die is toegewezen aan de Java Virtual Machine binnen een Elasticsearch-knooppunt.



Elasticsearch stelt de JVM Heap-grootte standaard in op basis van het totale geheugen van het basissysteem en de rol van het knooppunt. Dit betekent dat de toewijzing van de heapgeheugengrootte kan variëren, afhankelijk van of het een masternode, data, ingest, data_cold, enz. is.





Voor de meeste productieomgevingen is het aanbevolen en meer dan voldoende om Elasticsearch de heapgrootte te laten beheren.

OPMERKING : Als u Elasticsearch in Docker uitvoert, is het totale heapgeheugen gebaseerd op de totale grootte van de docker-container en niet op de host van de Docker.



Minimale en maximale heapgrootte configureren

Om de minimale en maximale heapgrootte te configureren, kunnen we de Xms- en Xmx-parameters gebruiken. Elasticsearch-probits stellen het maximale geheugen in op niet meer dan 50% van het totale geheugen. Dit komt omdat naast JVM Heap, Elasticsearch meer geheugen nodig heeft voor andere bewerkingen zoals bestandssysteemcache, netwerkcommunicatie, enz. Op dezelfde manier zal de JVM een deel van de resterende 50% geheugen gebruiken.

Stel ten tweede de xms- en xmx-waarden niet in op meer dan de drempel van de oeps. Voor een veilige configuratie, beperk het tot 26GB of 30GB op sommige systemen.

U kunt de drempel controleren in het Elasticsearch-logboek.

kat elasticsearch.log | grep 'objectaanwijzers'

U zou een invoer moeten zien zoals weergegeven:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment   ] [debian11] heapgrootte [1,9 gb], gecomprimeerde gewone objectaanwijzers [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] heapgrootte [1,9 gb], gecomprimeerde gewone objectaanwijzers [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment   ] [debian11] heapgrootte [1.9gb], gecomprimeerde gewone objectaanwijzers [true]

U kunt ook de knooppuntinformatie-API opvragen voor de xms- en xmx-waarden:

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

U zou een uitvoer moeten zien zoals weergegeven:

Stel de minimale en maximale heapgrootte in

Om de waarden van de JVM Heap Size te wijzigen, moet u een configuratiebestand toevoegen in de map /etc/elasticsearch/jvm.options.d. Dit bestand moet eindigen met de extensie .options.

Bijvoorbeeld:

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

Bewerk het bestand

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

Voeg de gewenste minimale en maximale heapgeheugengrootte toe.

Het onderstaande item configureert bijvoorbeeld de minimale en maximale heapgrootte tot 4 GB.

Sla het bestand op en start de Elasticsearch-service opnieuw.

Conclusie

In deze tutorial heb je de JVM Heap geleerd in de context van Elasticsearch, hoe Elasticsearch de JVM Heap configureert en hoe je de heapgrootte kunt wijzigen.

Bedankt voor het lezen!!