Comment résoudre les problèmes de pression de mémoire élevée sur la machine virtuelle Java sur mon cluster OpenSearch Service ?

Lecture de 4 minute(s)
0

Mon cluster Amazon OpenSearch Service est soumis à une pression de mémoire JVM élevée, et je ne sais pas comment résoudre ce problème.

Brève description

Par défaut, OpenSearch Service utilise 50 % de la RAM d’une instance pour les tas de JVM d’une taille maximale de 32 Go. La pression de mémoire de la JVM indique le pourcentage du tas Java dans un nœud de cluster. Les instructions suivantes indiquent ce que signifient les pourcentages de pression de la mémoire JVM :

  • Si la pression de mémoire de la JVM atteint 75 %, OpenSearch Service lance le collecteur de déchets CMS (Concurrent Mark Sweep) pour les types d’instances Amazon Elastic Compute Cloud (Amazon EC2) x86. Les types d’instances Amazon EC2 Graviton basés sur ARM utilisent le ramasse-miettes Garbage-First (G1) qui utilise des pauses courtes supplémentaires et une défragmentation du tas. La collecte des déchets est un processus gourmand en ressources CPU. Si l’utilisation de la mémoire continue d’augmenter, vous pouvez rencontrer ClusterBlockException, JVM OutOfMemoryError ou d’autres problèmes de performances du cluster. Pour plus d’informations, consultez la section Recovering from a continuous heavy processing load (Restauration après une charge de traitement continue importante).
  • Si la pression de la mémoire JVM dépasse 92 % pendant 30 minutes, OpenSearch Service bloque toutes les opérations d’écriture.
  • Si la sollicitation de la mémoire JVM atteint 100 %, la JVM d’OpenSearch Service est configurée pour s’arrêter et redémarrer probablement sur OutOfMemory (OOM).

Les raisons suivantes peuvent entraîner une pression de mémoire JVM élevée :

  • Pics du nombre de demandes adressées au cluster.
  • Agrégations, caractères génériques et sélection de plages temporelles étendues dans les requêtes.
  • Allocations de partitions déséquilibrées entre les nœuds ou trop de partitions dans un cluster.
  • Explosions de données de terrain ou d’index cartographiant des explosions.
  • Types d’instances qui ne peuvent pas gérer les charges entrantes.

Résolution

Réduisez le trafic vers le cluster pour résoudre les problèmes de forte pression sur la mémoire de la JVM. Pour réduire le trafic vers le cluster, suivez les meilleures pratiques suivantes :

  • Videz le cache des données du champ à l’aide du POST /index_name/_cache/clear?fielddata=true opération de l’API.
    Remarque : L’effacement du cache peut perturber les requêtes en cours.
  • N’agrégez pas les champs de texte et ne modifiez pas le type de mappage en « mot clé ».
  • Ajustez le domaine de manière à ce que la taille maximale du segment de mémoire par nœud soit de 32 Go.
  • Activez les journaux lents (site Web OpenSearch) pour déterminer les demandes erronées.
    **Remarque :**Vérifiez que la pression de la mémoire JVM est inférieure à 90 %. Pour plus d’informations sur les requêtes Elasticsearch lentes, voir Réglage avancé : recherche et correction des requêtes Elasticsearch lentes sur le site Web d’Elasticsearch.
  • Choisissez le nombre approprié de partitions pour optimiser la recherche ou l’indexation. Pour plus d’informations sur l’indexation et le nombre de partitions, consultez Comment rééquilibrer la distribution inégale des partitions dans mon cluster Amazon OpenSearch Service ?
  • Supprimez les index anciens ou inutilisés pour réduire le nombre de partitions.
  • Pour les utilisateurs expérimentés, vous pouvez mettre à jour l’allocation du cache de données du champ parent ou demander les paramètres du disjoncteur en fonction de votre cas d’utilisation. Pour plus d’informations sur les disjoncteurs JVM, consultez JVM OutOfMemoryError.

Pour plus d’informations sur la façon de résoudre les problèmes de pression élevée sur la mémoire de la JVM, consultez Pourquoi mon nœud OpenSearch Service s’est-il écrasé ?

Informations connexes

Résolution des problèmes liés à Amazon OpenSearch Service

Comment augmenter ou réduire la taille d’un domaine Amazon OpenSearch Service ?

Démarrez avec Amazon Elasticsearch Service : De combien de shards ai-je besoin ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an