Elasticsearch Set Max Memory Taille

Elasticsearch Set Max Memory Taille

«La mémoire est une ressource essentielle mais limitée lorsque vous travaillez avec Elasticsearch. C'est parce que Lucene utilisera chaque mémoire disponible. Cependant, lorsqu'il est mal configuré, les paramètres de mémoire peuvent entraîner des performances faibles et une utilisation de la mémoire inefficace."

Dans ce tutoriel, nous vous montrerons la configuration maximale et minimale de taille de tas JVM lorsque vous travaillez avec Elasticsearch.

Commençons.

Qu'est-ce qu'une mémoire de tas?

Dans le contexte d'Elasticsearch, la mémoire de tas fait référence à la quantité totale de mémoire allouée à la machine virtuelle Java dans un nœud Elasticsearch.

Elasticsearch sera défaut de définir la taille du tas JVM en fonction de la mémoire totale du système de base et du rôle du nœud. Cela signifie que l'attribution de la taille de la mémoire du tas peut varier selon qu'il s'agit d'un nœud maître, de données, d'ingestion, de données_cold, etc.

Pour la plupart des environnements de production, permettre à Elasticsearch de gérer la taille du tas est recommandé et plus que suffisant.

NOTE: Si vous exécutez Elasticsearch dans Docker, la mémoire totale du tas est basée sur la taille totale du conteneur Docker et non sur l'hôte de Docker.

Configuration de la taille du tas minimum et maximum

Pour configurer la taille minimale et maximale du tas, nous pouvons utiliser les paramètres XMS et XMX. Les problèmes Elasticsearch définissent la mémoire maximale à pas plus de 50% de la mémoire totale. En effet. De même, le JVM utilisera une section de la mémoire de 50% restante.

Deuxièmement, ne définissez pas les valeurs XMS et XMX à plus que le seuil de l'OOPS. Pour une configuration sûre, limitez-la à 26 Go ou 30 Go sur certains systèmes.

Vous pouvez vérifier le seuil dans le journal Elasticsearch.

chat elasticsearch.Journal | grep "pointeurs d'objets"

Vous devriez voir une entrée comme indiqué:

[2022-08-19T20: 01: 50,275] [info] [o.e.e.Nodeenvironment] [Debian11] Taille du tas [1.9gb], pointeurs d'objets ordinaires compressés [true]
[2022-08-19T20: 08: 07,207] [info] [o.e.e.Nodeenvironment] [Debian11] Taille du tas [1.9gb], pointeurs d'objets ordinaires compressés [true]
[2022-08-19T20: 36: 47,244] [info] [o.e.e.Nodeenvironment] [Debian11] Taille du tas [1.9gb], pointeurs d'objets ordinaires compressés [true]

Vous pouvez également interroger l'API d'information des nœuds pour les valeurs XMS et XMX:

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

Vous devriez voir une sortie comme indiqué:

Réglez la taille de la minimum et le tas maximum

Pour modifier les valeurs de la taille du tas JVM, vous devez ajouter un fichier de configuration dans le / etc / elasticsearch / jvm.options.d répertoire. Ce fichier doit se terminer avec le .Extension des options.

Par exemple:

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

Modifier le fichier

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

Ajouter la taille de mémoire du tas minimum et maximum souhaitée.

Par exemple, l'entrée ci-dessous configure la taille minimale et maximale du tas à 4 Go.

Enregistrez le fichier et redémarrez le service Elasticsearch.

Conclusion

Dans ce tutoriel, vous avez appris le tas JVM dans le contexte d'Elasticsearch, comment Elasticsearch configure le tas JVM et comment vous pouvez modifier la taille du tas.

Merci d'avoir lu!!