Elasticsearch Imposta la dimensione massima della memoria

Elasticsearch Imposta La Dimensione Massima Della Memoria



“La memoria è una risorsa essenziale ma limitata quando si lavora con Elasticsearch. Questo perché Lucene utilizzerà tutta la memoria disponibile. Tuttavia, se configurate in modo errato, le impostazioni della memoria possono portare a prestazioni ridotte e un uso inefficiente della memoria'.

In questo tutorial, ti mostreremo la configurazione della dimensione heap JVM massima e minima quando lavori con Elasticsearch.







Iniziamo.



Che cos'è una memoria heap?

Nel contesto di Elasticsearch, la memoria Heap si riferisce alla quantità totale di memoria allocata alla Java Virtual Machine all'interno di un nodo Elasticsearch.



Elasticsearch imposterà per impostazione predefinita la dimensione dell'heap JVM in base alla memoria totale del sistema di base e al ruolo del nodo. Ciò significa che l'allocazione della dimensione della memoria heap può variare a seconda che si tratti di un nodo master, data, ingest, data_cold, ecc.





Per la maggior parte degli ambienti di produzione, consentire a Elasticsearch di gestire la dimensione dell'heap è consigliato e più che sufficiente.

NOTA : se esegui Elasticsearch in Docker, la memoria heap totale si basa sulla dimensione totale del contenitore Docker e non sull'host Docker.



Configurazione della dimensione dell'heap minima e massima

Per configurare la dimensione dell'heap minima e massima, possiamo utilizzare i parametri Xms e Xmx. I probit di Elasticsearch stanno impostando la memoria massima a non più del 50% della memoria totale. Questo perché oltre a JVM Heap, Elasticsearch richiede più memoria per altre operazioni come la cache del filesystem, la comunicazione di rete, ecc. Allo stesso modo, la JVM utilizzerà una sezione del restante 50% di memoria.

In secondo luogo, non impostare i valori xms e xmx su un valore superiore alla soglia di oops. Per una configurazione sicura, limitalo a 26 GB o 30 GB su alcuni sistemi.

Puoi controllare la soglia nel log di Elasticsearch.

gatto elasticsearch.log | grep 'puntatori di oggetti'

Dovresti vedere una voce come mostrato:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] dimensione heap [1,9 GB], puntatori a oggetti ordinari compressi [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] dimensione heap [1,9 GB], puntatori a oggetti ordinari compressi [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] dimensione heap [1,9 GB], puntatori a oggetti ordinari compressi [true]

Puoi anche interrogare l'API delle informazioni sui nodi per i valori xms e xmx:

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

Dovresti vedere un output come mostrato:

Imposta la dimensione minima e massima dell'heap

Per modificare i valori della JVM Heap Size, è necessario aggiungere un file di configurazione nella directory /etc/elasticsearch/jvm.options.d. Questo file dovrebbe terminare con l'estensione .options.

Per esempio:

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

Modifica il file

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

Aggiungere la dimensione della memoria heap minima e massima desiderata.

Ad esempio, la voce seguente configura la dimensione dell'heap minima e massima su 4 GB.

Salva il file e riavvia il servizio Elasticsearch.

Conclusione

In questo tutorial, hai imparato l'heap JVM nel contesto di Elasticsearch, come Elasticsearch configura l'heap JVM e come puoi modificare la dimensione dell'heap.

Grazie per aver letto!!