Elasticsearch Postavite maksimalnu veličinu memorije

Elasticsearch Postavite Maksimalnu Velicinu Memorije



“Memorija je bitan, ali ograničen resurs kada radite s Elasticsearchom. To je zato što će Lucene iskoristiti svaku dostupnu memoriju. Međutim, kada su pogrešno konfigurirane, postavke memorije mogu dovesti do niskih performansi i neučinkovitog korištenja memorije.”

U ovom vodiču pokazat ćemo vam maksimalnu i minimalnu konfiguraciju JVM Heap Size kada radite s Elasticsearchom.







Započnimo.



Što je Heap memorija?

U kontekstu Elasticsearch-a, Heap memorija se odnosi na ukupnu količinu memorije dodijeljenu Java Virtual Machine-u unutar čvora Elasticsearch-a.



Elasticsearch će zadano postaviti veličinu hrpe JVM-a na temelju ukupne memorije osnovnog sustava i uloge čvora. To znači da se dodjela veličine heap memorije može razlikovati ovisno o tome radi li se o glavnom čvoru, data, ingest, data_cold itd.





Za većinu proizvodnih okruženja, dopuštanje Elasticsearchu da upravlja veličinom gomile je preporučeno i više je nego dovoljno.

BILJEŠKA : Ako pokrećete Elasticsearch u Dockeru, ukupna memorija gomile temelji se na ukupnoj veličini docker spremnika, a ne na Dockerovom hostu.



Konfiguriranje minimalne i maksimalne veličine hrpe

Za konfiguriranje minimalne i maksimalne veličine hrpe, možemo koristiti parametre Xms i Xmx. Zabrane Elasticsearch postavljaju maksimalnu memoriju na ne više od 50% ukupne memorije. To je zato što osim JVM Heapa, Elasticsearch zahtijeva više memorije za druge operacije kao što su predmemorija datotečnog sustava, mrežna komunikacija itd. Slično tome, JVM će koristiti dio preostalih 50% memorije.

Drugo, ne postavljajte vrijednosti xms i xmx na više od praga ups. Za sigurnu konfiguraciju ograničite ga na 26 GB ili 30 GB na nekim sustavima.

Možete provjeriti prag u Elasticsearch zapisniku.

cat elasticsearch.log | grep 'pokazivači na objekte'

Trebali biste vidjeti unos kao što je prikazano:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] veličina hrpe [1.9gb], komprimirani obični pokazivači na objekte [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] veličina gomile [1.9gb], komprimirani obični pokazivači na objekte [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] veličina hrpe [1.9gb], komprimirani obični pokazivači na objekte [true]

Također možete postaviti upit API-ju informacija o čvorovima za xms i xmx vrijednosti:

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

Trebali biste vidjeti izlaz kao što je prikazano:

Postavite minimalnu i maksimalnu veličinu hrpe

Za izmjenu vrijednosti JVM Heap Size, trebate dodati konfiguracijsku datoteku u direktorij /etc/elasticsearch/jvm.options.d. Ova datoteka bi trebala završavati ekstenzijom .options.

Na primjer:

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

Uredite datoteku

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

Dodajte željenu minimalnu i maksimalnu veličinu heap memorije.

Na primjer, unos u nastavku konfigurira minimalnu i maksimalnu veličinu hrpe na 4 GB.

Spremite datoteku i ponovno pokrenite uslugu Elasticsearch.

Zaključak

U ovom vodiču ste naučili JVM Heap u kontekstu Elasticsearcha, kako Elasticsearch konfigurira JVM Heap i kako možete promijeniti veličinu heapa.

Hvala na čitanju!!