Elasticsearch Nustatykite maksimalų atminties dydį

Elasticsearch Nustatykite Maksimalu Atminties Dydi



„Atmintis yra esminis, bet ribotas išteklius dirbant su Elasticsearch. Taip yra todėl, kad Lucene išnaudos visą turimą atmintį. Tačiau netinkamai sukonfigūravus atminties nustatymus, gali sumažėti našumas ir atmintis gali būti naudojama neefektyviai.

Šioje pamokoje parodysime didžiausią ir mažiausią JVM krūvos dydžio konfigūraciją dirbant su Elasticsearch.







Pradėkime.



Kas yra krūvos atmintis?

„Elasticsearch“ kontekste „Heap“ atmintis reiškia bendrą „Java“ virtualiajai mašinai „Elasticsearch“ mazge skirtos atminties kiekį.



„Elasticsearch“ pagal numatytuosius nustatymus nustatys JVM krūvos dydį pagal bendrą bazinės sistemos atmintį ir mazgo vaidmenį. Tai reiškia, kad krūvos atminties dydžio paskirstymas gali skirtis priklausomai nuo to, ar tai pagrindinis mazgas, duomenys, perkėlimas, duomenų_šaltas ir kt.





Daugumoje gamybos aplinkų leisti Elasticsearch valdyti krūvos dydį yra rekomenduojama ir daugiau nei pakankamai.

PASTABA : Jei naudojate „Elasticsearch“ programoje „Docker“, bendra krūvos atmintis yra pagrįsta bendru „Docker“ konteinerio dydžiu, o ne „Docker“ pagrindiniu kompiuteriu.



Minimalaus ir didžiausio krūvos dydžio konfigūravimas

Norėdami sukonfigūruoti mažiausią ir didžiausią krūvos dydį, galime naudoti Xms ir Xmx parametrus. Elasticsearch probitai nustato maksimalią atmintį iki ne daugiau kaip 50% visos atminties. Taip yra todėl, kad, be JVM Heap, Elasticsearch reikia daugiau atminties kitoms operacijoms, tokioms kaip failų sistemos talpykla, tinklo ryšys ir t. t. Panašiai JVM naudos likusios 50 % atminties dalį.

Antra, nenustatykite xms ir xmx reikšmių didesnių nei oops slenkstis. Kad konfigūracija būtų saugi, kai kuriose sistemose apribokite jį iki 26 GB arba 30 GB.

Slenkstį galite patikrinti Elasticsearch žurnale.

katė elasticsearch.log | grep 'objektų rodyklės'

Turėtumėte pamatyti įrašą, kaip parodyta:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] krūvos dydis [1.9gb], suglaudintos paprasto objekto rodyklės [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] krūvos dydis [1.9gb], suglaudintos paprasto objekto rodyklės [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] krūvos dydis [1,9 GB], suglaudintos paprasto objekto rodyklės [true]

Taip pat galite pateikti užklausą mazgų informacijos API dėl xms ir xmx reikšmių:

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

Turėtumėte pamatyti išvestį, kaip parodyta:

Nustatykite minimalų ir didžiausią krūvos dydį

Norėdami pakeisti JVM krūvos dydžio reikšmes, į /etc/elasticsearch/jvm.options.d katalogą turite įtraukti konfigūracijos failą. Šis failas turėtų baigtis plėtiniu .options.

Pavyzdžiui:

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

Redaguoti failą

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

Pridėkite norimą mažiausią ir didžiausią krūvos atminties dydį.

Pavyzdžiui, toliau pateiktame įraše sukonfigūruojamas minimalus ir didžiausias krūvos dydis iki 4 GB.

Išsaugokite failą ir iš naujo paleiskite Elasticsearch paslaugą.

Išvada

Šiame vadove sužinojote apie JVM krūvą Elasticsearch kontekste, kaip Elasticsearch konfigūruoja JVM krūvą ir kaip galite keisti krūvos dydį.

Ačiū, kad skaitėte!!