Elasticsearch Indstil maksimal hukommelsesstørrelse

Elasticsearch Indstil Maksimal Hukommelsesstorrelse



'Hukommelse er en vigtig, men begrænset ressource, når du arbejder med Elasticsearch. Dette skyldes, at Lucene vil gøre brug af enhver tilgængelig hukommelse. Men når de er forkert konfigureret, kan hukommelsesindstillingerne føre til lav ydeevne og ineffektiv hukommelsesbrug.'

I denne vejledning viser vi dig den maksimale og minimale JVM Heap Size-konfiguration, når du arbejder med Elasticsearch.







Lad os komme igang.



Hvad er en heap-hukommelse?

I forbindelse med Elasticsearch refererer Heap-hukommelse til den samlede mængde hukommelse, der er allokeret til Java Virtual Machine i en Elasticsearch-node.



Elasticsearch vil som standard indstille JVM Heap-størrelsen baseret på den samlede hukommelse i basissystemet og nodens rolle. Dette betyder, at allokeringen af ​​heap-hukommelsesstørrelsen kan variere afhængigt af, om det er en masterknude, data, ingest, data_cold osv.





For de fleste produktionsmiljøer anbefales det, at det er mere end tilstrækkeligt at lade Elasticsearch styre bunkestørrelsen.

BEMÆRK : Hvis du kører Elasticsearch i Docker, er den samlede heap-hukommelse baseret på den samlede størrelse af docker-beholderen og ikke Docker-værten.



Konfiguration af minimum og maksimum bunkestørrelse

For at konfigurere den minimale og maksimale heapstørrelse kan vi bruge Xms- og Xmx-parametrene. Elasticsearch-probits indstiller den maksimale hukommelse til ikke mere end 50 % af den samlede hukommelse. Dette skyldes, at bortset fra JVM Heap, kræver Elasticsearch mere hukommelse til andre operationer såsom filsystemcache, netværkskommunikation osv. På samme måde vil JVM'en bruge en del af de resterende 50% hukommelse.

For det andet skal du ikke indstille xms- og xmx-værdierne til mere end tærsklen for oops. For sikker konfiguration skal du begrænse den til 26 GB eller 30 GB på nogle systemer.

Du kan tjekke tærsklen i Elasticsearch-loggen.

cat elasticsearch.log | grep 'objekt pointers'

Du bør se en post som vist:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] heapstørrelse [1.9gb], komprimerede almindelige objektmarkører [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] heapstørrelse [1.9gb], komprimerede almindelige objektmarkører [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] heapstørrelse [1.9gb], komprimerede almindelige objektmarkører [sand]

Du kan også forespørge i nodes information API for xms- og xmx-værdierne:

curl -X GET localhost:9200/_nodes/_all/jvm?pæn

Du bør se et output som vist:

Indstil minimum og maksimal bunkestørrelse

For at ændre værdierne for JVM Heap Size, skal du tilføje en konfigurationsfil i mappen /etc/elasticsearch/jvm.options.d. Denne fil skal slutte med filtypen .options.

For eksempel:

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

Rediger filen

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

Tilføj den ønskede minimale og maksimale hukommelsesstørrelse.

For eksempel konfigurerer indgangen nedenfor den minimale og maksimale heapstørrelse til 4 GB.

Gem filen og genstart Elasticsearch-tjenesten.

Konklusion

I denne øvelse lærte du JVM-heapen i forbindelse med Elasticsearch, hvordan Elasticsearch konfigurerer JVM-heapen, og hvordan du kan ændre heap-størrelsen.

Tak fordi du læste med!!