Elasticsearch Nastavit maximální velikost paměti

Elasticsearch Nastavit Maximalni Velikost Pameti



„Paměť je nezbytným, ale omezeným zdrojem při práci s Elasticsearch. Je to proto, že Lucene využije každou dostupnou paměť. Při nesprávné konfiguraci však může nastavení paměti vést k nízkému výkonu a neefektivnímu využití paměti.“

V tomto tutoriálu vám ukážeme maximální a minimální konfiguraci JVM Heap Size při práci s Elasticsearch.







Začněme.



Co je to haldová paměť?

V kontextu Elasticsearch, Heap memory odkazuje na celkové množství paměti přidělené Java Virtual Machine v rámci Elasticsearch uzlu.



Elasticsearch standardně nastaví velikost haldy JVM na základě celkové paměti základního systému a role uzlu. To znamená, že alokace velikosti paměti haldy se může lišit v závislosti na tom, zda se jedná o hlavní uzel, data, ingest, data_cold atd.





Pro většinu produkčních prostředí je doporučeno a více než dostatečné umožnit Elasticsearch spravovat velikost haldy.

POZNÁMKA : Pokud v Dockeru spouštíte Elasticsearch, celková paměť haldy je založena na celkové velikosti kontejneru dockeru a ne na hostiteli Dockeru.



Konfigurace minimální a maximální velikosti haldy

Pro konfiguraci minimální a maximální velikosti haldy můžeme použít parametry Xms a Xmx. Elasticsearch probity nastavují maximální paměť na ne více než 50 % celkové paměti. Je to proto, že kromě JVM Heap vyžaduje Elasticsearch více paměti pro další operace, jako je mezipaměť souborového systému, síťová komunikace atd. Podobně JVM využije část zbývajících 50 % paměti.

Za druhé, nenastavujte hodnoty xms a xmx na více, než je práh chyb. Pro bezpečnou konfiguraci omezte na některých systémech na 26 GB nebo 30 GB.

Práh můžete zkontrolovat v protokolu Elasticsearch.

cat elasticsearch.log | grep 'ukazatele objektů'

Měli byste vidět záznam takto:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] velikost haldy [1,9 gb], komprimované ukazatele obyčejných objektů [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] velikost haldy [1,9 gb], komprimované ukazatele obyčejných objektů [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] velikost haldy [1,9 gb], komprimované ukazatele obyčejných objektů [true]

Na hodnoty xms a xmx můžete také dotazovat rozhraní API pro informace o uzlech:

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

Měli byste vidět výstup takto:

Nastavte minimální a maximální velikost haldy

Chcete-li upravit hodnoty velikosti haldy JVM, musíte přidat konfigurační soubor do adresáře /etc/elasticsearch/jvm.options.d. Tento soubor by měl končit příponou .options.

Například:

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

Upravte soubor

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

Přidejte požadovanou minimální a maximální velikost paměti haldy.

Například níže uvedená položka konfiguruje minimální a maximální velikost haldy na 4 GB.

Uložte soubor a restartujte službu Elasticsearch.

Závěr

V tomto kurzu jste se naučili haldu JVM v kontextu Elasticsearch, jak Elasticsearch konfiguruje haldu JVM a jak můžete upravit velikost haldy.

Děkuji za přečtení!!