Elasticsearch iestatiet maksimālo atmiņas lielumu

Elasticsearch Iestatiet Maksimalo Atminas Lielumu



“Atmiņa ir būtisks, bet ierobežots resurss, strādājot ar Elasticsearch. Tas ir tāpēc, ka Lucene izmantos visu pieejamo atmiņu. Tomēr, ja tie ir nepareizi konfigurēti, atmiņas iestatījumi var izraisīt zemu veiktspēju un neefektīvu atmiņas izmantošanu.

Šajā apmācībā mēs parādīsim maksimālo un minimālo JVM kaudzes lieluma konfigurāciju, strādājot ar Elasticsearch.







Sāksim.



Kas ir kaudzes atmiņa?

Elasticsearch kontekstā kaudzes atmiņa attiecas uz kopējo Java virtuālajai mašīnai piešķirtās atmiņas apjomu Elasticsearch mezglā.



Elasticsearch pēc noklusējuma iestatīs JVM kaudzes lielumu, pamatojoties uz bāzes sistēmas kopējo atmiņu un mezgla lomu. Tas nozīmē, ka kaudzes atmiņas lieluma piešķiršana var atšķirties atkarībā no tā, vai tas ir galvenais mezgls, dati, pārņemšana, datu_aukstums utt.





Lielākajai daļai ražošanas vidi ieteicams ļaut Elasticsearch pārvaldīt kaudzes lielumu, un tas ir vairāk nekā pietiekami.

PIEZĪME : Ja izmantojat Elasticsearch programmā Docker, kopējā kaudzes atmiņa ir balstīta uz docker konteinera kopējo izmēru, nevis Docker resursdatoru.



Minimālā un maksimālā kaudzes lieluma konfigurēšana

Lai konfigurētu minimālo un maksimālo kaudzes izmēru, mēs varam izmantot Xms un Xmx parametrus. Elasticsearch probits iestata maksimālo atmiņu ne vairāk kā 50% no kopējās atmiņas. Tas ir tāpēc, ka, izņemot JVM Heap, Elasticsearch prasa vairāk atmiņas citām darbībām, piemēram, failu sistēmas kešatmiņai, tīkla saziņai utt. Tāpat JVM izmantos daļu no atlikušās 50% atmiņas.

Otrkārt, neiestatiet xms un xmx vērtības, kas pārsniedz oops slieksni. Drošai konfigurācijai dažās sistēmās ierobežojiet to līdz 26 GB vai 30 GB.

Jūs varat pārbaudīt slieksni Elasticsearch žurnālā.

kaķis elasticsearch.log | grep 'objektu norādes'

Jums vajadzētu redzēt ierakstu, kā parādīts:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] kaudzes izmērs [1,9 gb], saspiesti parasto objektu norādes [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] kaudzes izmērs [1,9 gb], saspiesti parasto objektu norādes [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] kaudzes izmērs [1,9 gb], saspiesti parasto objektu norādes [true]

Varat arī vaicāt mezglu informācijas API xms un xmx vērtībām:

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

Jums vajadzētu redzēt izvadi, kā parādīts:

Iestatiet minimālo un maksimālo kaudzes lielumu

Lai mainītu JVM kaudzes lieluma vērtības, direktorijā /etc/elasticsearch/jvm.options.d jāpievieno konfigurācijas fails. Šim failam ir jābeidzas ar paplašinājumu .options.

Piemēram:

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

Rediģēt failu

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

Pievienojiet vajadzīgo minimālo un maksimālo kaudzes atmiņas lielumu.

Piemēram, zemāk esošais ieraksts konfigurē minimālo un maksimālo kaudzes lielumu uz 4 GB.

Saglabājiet failu un restartējiet pakalpojumu Elasticsearch.

Secinājums

Šajā apmācībā jūs uzzinājāt par JVM kaudzi Elasticsearch kontekstā, kā Elasticsearch konfigurē JVM kaudzi un kā varat mainīt kaudzes lielumu.

Paldies, ka lasījāt!!