“La memoria è una risorsa essenziale ma limitata quando si lavora con ElaSticSearch. Questo perché Lucene userà ogni memoria disponibile. Tuttavia, quando non configurato, le impostazioni di memoria possono portare a prestazioni basse e utilizzo della memoria inefficiente."
In questo tutorial, ti mostreremo la configurazione massima e minima della dimensione del heap JVM quando lavoriamo con ElaSticSearch.
Iniziamo.
Cos'è una memoria di heap?
Nel contesto di Elasticsearch, la memoria heap si riferisce alla quantità totale di memoria assegnata alla macchina virtuale Java all'interno di un nodo ElaSticSearch.
ElasticSearch imposterà impostazione predefinita la dimensione del heap JVM in base alla memoria totale del sistema di base e al ruolo del nodo. Ciò significa che l'allocazione delle dimensioni della memoria dell'heap può variare a seconda che si tratti di un nodo principale, dati, ingest, data_cold, ecc.
Per la maggior parte degli ambienti di produzione, consente di gestire ElaSticSearch di gestire la dimensione del heap e più che sufficiente.
NOTA: Se stai eseguendo ElasticSearch in Docker, la memoria totale dell'heap si basa sulla dimensione totale del contenitore Docker e non sull'host di Docker.
Configurazione della dimensione del heap minima e massima
Per configurare la dimensione del heap minima e massima, possiamo utilizzare i parametri XMS e XMX. I problemi di ElasticSearch stanno impostando la memoria massima su 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, il JVM utilizzerà una sezione della restante memoria del 50%.
In secondo luogo, non impostare i valori XMS e XMX su più della soglia di OOPS. Per una configurazione sicura, limitalo a 26 GB o 30 GB su alcuni sistemi.
Puoi controllare la soglia nel registro Elasticsearch.
CAT ELASTICSEARCH.registro | grep "puntatori oggetto"Dovresti vedere una voce come mostrato:
[2022-08-19T20: 01: 50.275] [info] [O.e.e.Nodeenvironment] [Debian11] HEAP Dimensioni [1.9GB], puntatori di oggetti ordinari compressi [True]È inoltre possibile interrogare l'API delle informazioni dei nodi per i valori XMS e XMX:
Curl -x Ottieni localhost: 9200/_nodes/_all/jvm?belloDovresti vedere un output come mostrato:
Impostare il minumum e la dimensione massima del heap
Per modificare i valori della dimensione del heap JVM, è necessario aggiungere un file di configurazione in/etc/elasticsearch/jvm.opzioni.directory d. Questo file dovrebbe terminare con il file .estensione delle opzioni.
Per esempio:
$ sudo touch/etc/elasticsearch/jvm.opzioni.d/heap.opzioniModifica il file
$ sudo nano/etc/elasticsearch/jvm.opzioni.d/heap.opzioniAggiungi la dimensione della memoria minima e massima desiderata.
Ad esempio, la voce seguente configura la dimensione del heap minima e massima a 4 GB.
Salva il file e riavvia il servizio ElasticSearch.
Conclusione
In questo tutorial, hai imparato il cumulo JVM nel contesto di Elasticsearch, come Elasticsearch configura il heap JVM e come è possibile modificare la dimensione del heap.
Grazie per aver letto!!