Elasticsearch Nastavi največjo velikost pomnilnika

Elasticsearch Nastavi Najvecjo Velikost Pomnilnika



»Pomnilnik je pomemben, a omejen vir pri delu z Elasticsearch. To je zato, ker bo Lucene uporabil vsak razpoložljivi pomnilnik. Če pa so nastavitve pomnilnika napačno konfigurirane, lahko povzročijo nizko zmogljivost in neučinkovito uporabo pomnilnika.«

V tej vadnici vam bomo pokazali največjo in najmanjšo konfiguracijo velikosti kopice JVM pri delu z Elasticsearch.







Začnimo.



Kaj je pomnilnik kopice?

V kontekstu Elasticsearch se pomnilnik kopice nanaša na skupno količino pomnilnika, dodeljenega navideznemu stroju Java v vozlišču Elasticsearch.



Elasticsearch bo privzeto nastavil velikost kopice JVM na podlagi celotnega pomnilnika osnovnega sistema in vloge vozlišča. To pomeni, da se lahko dodelitev velikosti pomnilnika kopice razlikuje glede na to, ali gre za glavno vozlišče, podatke, zajem, data_cold itd.





Za večino produkcijskih okolij je dovoljenje Elasticsearchu za upravljanje velikosti kopice priporočljivo in več kot zadostno.

OPOMBA : Če izvajate Elasticsearch v Dockerju, skupni pomnilnik kopice temelji na skupni velikosti vsebnika dockerja in ne na gostitelju Dockerja.



Konfiguriranje najmanjše in največje velikosti kopice

Za konfiguracijo najmanjše in največje velikosti kopice lahko uporabimo parametra Xms in Xmx. Prepovedi Elasticsearch nastavijo največji pomnilnik na največ 50 % celotnega pomnilnika. To je zato, ker Elasticsearch poleg JVM Heap potrebuje več pomnilnika za druge operacije, kot so predpomnilnik datotečnega sistema, omrežna komunikacija itd. Podobno bo JVM uporabil del preostalih 50 % pomnilnika.

Drugič, vrednosti xms in xmx ne nastavite na več kot prag ups. Za varno konfiguracijo ga v nekaterih sistemih omejite na 26 GB ali 30 GB.

Prag lahko preverite v dnevniku Elasticsearch.

cat elasticsearch.log | grep 'kazalci objektov'

Morali bi videti vnos, kot je prikazano:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] velikost kopice [1,9 gb], stisnjeni običajni objektni kazalci [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] velikost kopice [1,9 gb], stisnjeni navadni kazalci predmetov [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] velikost kopice [1,9 gb], stisnjeni običajni objektni kazalci [true]

Za vrednosti xms in xmx lahko poizvedujete tudi API informacij o vozliščih:

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

Videti bi morali izhod, kot je prikazano:

Nastavite najmanjšo in največjo velikost kopice

Če želite spremeniti vrednosti velikosti kopice JVM, morate dodati konfiguracijsko datoteko v imenik /etc/elasticsearch/jvm.options.d. Ta datoteka se mora končati s pripono .options.

Na primer:

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

Uredite datoteko

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

Dodajte želeno najmanjšo in največjo velikost pomnilnika kopice.

Na primer, spodnji vnos konfigurira najmanjšo in največjo velikost kopice na 4 GB.

Shranite datoteko in znova zaženite storitev Elasticsearch.

Zaključek

V tej vadnici ste spoznali kopico JVM v kontekstu Elasticsearch, kako Elasticsearch konfigurira kopico JVM in kako lahko spremenite velikost kopice.

Hvala za branje!!