Éléments clés de la JVM pour Elasticsearch : Métriques, mémoire et surveillance
Elasticsearch est un moteur de recherche et d'analyse, ainsi qu'une base de données vectorielle, construit sur Java et Apache Lucene, faisant partie de la plateforme d'intelligence artificielle de recherche d'Elastic. Il nécessite une machine virtuelle Java (JVM) pour fonctionner. La JVM fournit un environnement d'exécution indépendant de la plateforme, permettant à Elasticsearch de fonctionner sur divers systèmes d'exploitation. Comprendre la gestion de la mémoire et la collecte des ordures de la JVM est critique pour résoudre les problèmes liés à la mémoire. Ces problèmes peuvent se manifester sous la forme d'une erreur java.lang.OutOfMemoryError ou d'un code de sortie 137 en raison d'une utilisation excessive de la mémoire. Ce document explique le rôle de la JVM et comment la corréler avec les API d'Elasticsearch. Les options JVM par défaut dans Elasticsearch sont généralement suffisantes pour la plupart des cas d'utilisation, et la modification n'est pas recommandée. Une machine virtuelle Java (JVM) est un composant essentiel de l'environnement d'exécution Java (JRE), inclus dans le kit de développement Java (JDK). La JVM traduit le code Java en instructions exécutables par la machine et gère la mémoire, la collecte des ordures et la sécurité. La gestion de la mémoire de la JVM implique la génération jeune (Eden, S0, S1) et la génération vieille, qui stocke les objets à longue durée de vie. La collecte des ordures supprime les objets inutilisés, réduisant l'utilisation de la mémoire heap en un motif en dents de scie, qui est la clé pour gérer la mémoire. Le G1GC a une cible de temps d'arrêt pour une collecte des ordures efficace. Les API GET _nodes/_all/jvm et GET _nodes/stats/jvm offrent des informations sur la configuration JVM et les métriques d'Elasticsearch. Les utilisateurs avancés peuvent utiliser l'outil jstat, partie du kit de développement Java, pour obtenir des statistiques JVM en temps réel.
java.lang.OutOfMemoryErrorou d'un code de sortie 137 en raison d'une utilisation excessive de la mémoire. Ce document explique le rôle de la JVM et comment la corréler avec les API d'Elasticsearch. Les options JVM par défaut dans Elasticsearch sont généralement suffisantes pour la plupart des cas d'utilisation, et la modification n'est pas recommandée. Une machine virtuelle Java (JVM) est un composant essentiel de l'environnement d'exécution Java (JRE), inclus dans le kit de développement Java (JDK). La JVM traduit le code Java en instructions exécutables par la machine et gère la mémoire, la collecte des ordures et la sécurité. La gestion de la mémoire de la JVM implique la génération jeune (Eden, S0, S1) et la génération vieille, qui stocke les objets à longue durée de vie. La collecte des ordures supprime les objets inutilisés, réduisant l'utilisation de la mémoire heap en un motif en dents de scie, qui est la clé pour gérer la mémoire. Le G1GC a une cible de temps d'arrêt pour une collecte des ordures efficace. Les APIGET _nodes/_all/jvmetGET _nodes/stats/jvmoffrent des informations sur la configuration JVM et les métriques d'Elasticsearch. Les utilisateurs avancés peuvent utiliser l'outiljstat, partie du kit de développement Java, pour obtenir des statistiques JVM en temps réel.