Elasticsearch Ustaw maksymalny rozmiar pamięci

Elasticsearch Ustaw Maksymalny Rozmiar Pamieci



„Pamięć jest niezbędnym, ale ograniczonym zasobem podczas pracy z Elasticsearch. Dzieje się tak, ponieważ Lucene wykorzysta każdą dostępną pamięć. Jednak w przypadku nieprawidłowej konfiguracji ustawienia pamięci mogą prowadzić do niskiej wydajności i nieefektywnego wykorzystania pamięci”.

W tym samouczku pokażemy maksymalną i minimalną konfigurację rozmiaru sterty JVM podczas pracy z Elasticsearch.







Zacznijmy.



Co to jest pamięć sterty?

W kontekście Elasticsearch, pamięć sterty odnosi się do całkowitej ilości pamięci przydzielonej do wirtualnej maszyny Java w węźle Elasticsearch.



Elasticsearch domyślnie ustawi rozmiar sterty JVM na podstawie całkowitej pamięci systemu podstawowego i roli węzła. Oznacza to, że alokacja rozmiaru pamięci sterty może się różnić w zależności od tego, czy jest to węzeł główny, dane, pozyskiwanie, data_cold itp.





W przypadku większości środowisk produkcyjnych zezwolenie Elasticsearch na zarządzanie rozmiarem sterty jest zalecane i więcej niż wystarczające.

NOTATKA : Jeśli używasz Elasticsearch w Dockerze, całkowita pamięć sterty jest oparta na całkowitym rozmiarze kontenera Dockera, a nie na hoście Dockera.



Konfiguracja minimalnego i maksymalnego rozmiaru sterty

Aby skonfigurować minimalny i maksymalny rozmiar sterty, możemy użyć parametrów Xms i Xmx. Probity Elasticsearch ustawiają maksymalną pamięć na nie więcej niż 50% całkowitej pamięci. Dzieje się tak, ponieważ oprócz JVM Heap, Elasticsearch wymaga więcej pamięci do innych operacji, takich jak pamięć podręczna systemu plików, komunikacja sieciowa itp. Podobnie JVM wykorzysta część pozostałych 50% pamięci.

Po drugie, nie ustawiaj wartości xms i xmx na więcej niż próg „oops”. Aby zapewnić bezpieczną konfigurację, ogranicz ją do 26 GB lub 30 GB w niektórych systemach.

Możesz sprawdzić próg w dzienniku Elasticsearch.

kot elasticsearch.log | grep „wskaźniki obiektów”

Powinieneś zobaczyć wpis, jak pokazano:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] rozmiar sterty [1.9 gb], skompresowane zwykłe wskaźniki obiektów [prawda]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] rozmiar sterty [1.9 gb], skompresowane zwykłe wskaźniki obiektów [prawda]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] rozmiar sterty [1.9 gb], skompresowane zwykłe wskaźniki obiektów [prawda]

Możesz również wysłać zapytanie do interfejsu API informacji o węzłach o wartości xms i xmx:

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

Powinieneś zobaczyć dane wyjściowe, jak pokazano:

Ustaw minimalny i maksymalny rozmiar sterty

Aby zmodyfikować wartości rozmiaru sterty maszyny JVM, należy dodać plik konfiguracyjny w katalogu /etc/elasticsearch/jvm.options.d. Ten plik powinien kończyć się rozszerzeniem .options.

Na przykład:

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

Edytuj plik

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

Dodaj żądany minimalny i maksymalny rozmiar pamięci sterty.

Na przykład poniższy wpis konfiguruje minimalny i maksymalny rozmiar sterty na 4 GB.

Zapisz plik i uruchom ponownie usługę Elasticsearch.

Wniosek

W tym samouczku poznałeś stertę JVM w kontekście Elasticsearch, jak Elasticsearch konfiguruje stertę JVM i jak można modyfikować rozmiar sterty.

Dziękuje za przeczytanie!!