ElasticSearch Ustaw maksymalny rozmiar pamięci

ElasticSearch Ustaw maksymalny rozmiar pamięci

„Pamięć jest niezbędnym, ale ograniczonym zasobem podczas pracy z ElasticSearch. Dzieje się tak, ponieważ Lucene będzie korzystać z każdej dostępnej pamięci. Jednak po błędnej konfiguracji ustawienia pamięci mogą prowadzić do niskiej wydajności i nieefektywnego użycia pamięci."

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

Zacznijmy.

Co to jest pamięć sterta?

W kontekście Elasticsearch pamięć sterta odnosi się do całkowitej ilości pamięci przydzielonej maszynie wirtualnej 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, spożycie, data_cold itp.

W przypadku większości środowisk produkcyjnych zaleca się umożliwienie elasticearch na zarządzanie wielkością sterty i więcej niż wystarczające.

NOTATKA: Jeśli uruchamiasz ElasticSearch w Docker, całkowita pamięć sterty opiera.

Konfigurowanie minimalnego i maksymalnego rozmiaru sterty

Aby skonfigurować minimalny i maksymalny rozmiar sterty, możemy użyć parametrów XMS i XMX. ElasticSearch Probits 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 dla innych operacji, takich jak pamięć podręczna systemu plików, komunikacja sieciowa itp. Podobnie JVM użyje sekcji pozostałej pamięci 50%.

Po drugie, nie ustawiaj wartości XMS i XMX na więcej niż próg OOPS. Do bezpiecznej konfiguracji ogranicz go do 26 GB lub 30 GB w niektórych systemach.

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

Cat Elasticsearch.Log | Grep „Wskaźniki obiektu”

Powinieneś zobaczyć wpis, jak pokazano:

[2022-08-19T20: 01: 50,275] [Info] [o.mi.mi.Nodeenvironment] [Debian11] rozmiar sterty [1.9 GB], skompresowane zwykłe wskaźniki obiektów [prawda]
[2022-08-19T20: 08: 07,207] [Info] [o.mi.mi.Nodeenvironment] [Debian11] rozmiar sterty [1.9 GB], skompresowane zwykłe wskaźniki obiektów [prawda]
[2022-08-19T20: 36: 47 244] [Info] [o.mi.mi.Nodeenvironment] [Debian11] rozmiar sterty [1.9 GB], skompresowane zwykłe wskaźniki obiektów [prawda]

Możesz również zapytać API informacji o węzłach dla wartości XMS i XMX:

curl -x get localhost: 9200/_nodes/_all/jvm?ładny

Powinieneś zobaczyć wyjście, jak pokazano:

Ustaw minumum i maksymalny rozmiar sterty

Aby zmodyfikować wartości rozmiaru sterty JVM, musisz dodać plik konfiguracyjny w/etc/elasticsearch/jvm.opcje.D katalog. Ten plik powinien zakończyć się .rozszerzenie opcji.

Na przykład:

$ sudo touch/etc/elasticsearch/jvm.opcje.D/sterta.opcje

Edytuj plik

$ sudo nano/etc/elasticsearch/jvm.opcje.D/sterta.opcje

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

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

Zapisz plik i uruchom ponownie usługę ElasticSearch.

Wniosek

W tym samouczku nauczyłeś się sterty JVM w kontekście ElasticSearch, jak ElasticSearch konfiguruje stertę JVM i jak można zmodyfikować rozmiar sterty.

Dziękuje za przeczytanie!!