Pourquoi mon nœud Amazon OpenSearch Service s'est-il arrêté de fonctionner ?

Date de la dernière mise à jour : 21/12/2022

L'un des nœuds de mon cluster Amazon OpenSearch Service ne fonctionne plus et je souhaite éviter que cela ne se produise.

Brève description

Chaque nœud OpenSearch Service s'exécute sur une instance Amazon Elastic Compute Cloud (Amazon EC2) distincte. Un nœud défaillant est une instance qui ne répond pas aux signaux d'activité des autres nœuds. Les signaux de pulsation sont des signaux réguliers qui contrôlent la disponibilité des nœuds de données dans le cluster.

Les causes courantes de défaillances des nœuds de cluster peuvent être les suivantes :

  • Forte sollicitation de la mémoire de la machine virtuelle Java (JVM)
  • Panne matérielle

Solution

Rechercher les nœuds défaillants

1.    Connectez-vous à la console OpenSearch Service.

2.    Dans le volet de navigation, sous Managed clusters (Clusters gérés), choisissez Domains (Domaines).

3.    Choisissez le nom de votre domaine OpenSearch Service.

4.    Choisissez l'onglet État du cluster, puis la métrique Nœuds. Si le nombre de nœuds est inférieur au nombre que vous avez configuré pour votre cluster, cela signifie qu'un nœud est défaillant.

Remarque : la métrique Nœuds peut être inexacte durant les modifications de la configuration de votre cluster ou pendant les opérations de maintenance du service. Ce comportement est normal.

Identifiez et résolvez les problèmes liés à une forte sollicitation de la mémoire JVM

La sollicitation de mémoire JVM désigne le pourcentage de tas Java utilisé pour tous les nœuds de données dans un cluster OpenSearch Service. Une forte sollicitation de la mémoire JVM peut entraîner une utilisation élevée du processeur et poser d'autres problèmes de performances de cluster.

La sollicitation de la mémoire JVM est déterminée par les conditions suivantes :

  • Le volume de données dans le cluster proportionnellement au nombre de ressources.
  • La charge des requêtes dans le cluster.

À mesure que la sollicitation de la mémoire JVM augmente, les événements suivants se produisent :

  • À 75 % : OpenSearch Service lance le récupérateur de mémoire Concurrent Mark Sweep (CMS). Le récupérateur CMS s'exécute avec d'autres processus pour réduire au minimum les pauses et interruptions.
    Remarque : OpenSearch Service publie plusieurs métriques du récupérateur de mémoire sur Amazon CloudWatch. Ces métriques peuvent vous aider à contrôler l'utilisation de la mémoire JVM. Pour en savoir plus, consultez Surveillance des métriques du cluster OpenSearch avec Amazon CloudWatch.
  • Au-dessus de 75 % : si le collecteur CMS ne parvient pas à récupérer suffisamment de mémoire et que l'utilisation reste supérieure à 75 %, la JVM OpenSearch Service tente de libérer de la mémoire. La JVM OpenSearch Service tente également d'empêcher une exception JVM OutOfMemoryError (OOM) en ralentissant ou en arrêtant des processus.
  • Si la JVM continue de croître et que l'espace n'est pas récupéré, la JVM OpenSearch Service arrête les processus qui tentent d'allouer de la mémoire. Si un processus important est arrêté, un ou plusieurs nœuds de cluster peuvent devenir défaillants. Il est recommandé de maintenir l'utilisation du processeur inférieure à 80 %.

Afin d'éviter toute sollicitation élevée de la mémoire JVM, suivez les bonnes pratiques ci-dessous :

  • Évitez d'exécuter des requêtes sur de larges plages, telles que des requêtes génériques.
  • Évitez d'envoyer un grand nombre de requêtes en même temps.
  • Assurez-vous de disposer du nombre approprié de partitions. Pour plus d'informations concernant la stratégie d'indexation, consultez Choix du nombre de partitions.
  • Assurez-vous que vos partitions sont réparties de façon uniforme entre les nœuds.
  • Évitez l'agrégation sur les champs de texte. Cela permet d'éviter les augmentations dans les champs de données. Plus vous disposez de données de champ, plus l'espace de tas est utilisé. Utilisez l'opération d'API GET _cluster/stats pour vérifier les données de champ. Pour plus d'informations, consultez la section fielddata de la documentation d'Elasticsearch.
  • Si vous devez effectuer des agrégations sur des champs de texte, vous devez modifier le type de mappage en mot clé. Si la sollicitation de la mémoire JVM devient trop élevée, utilisez les opérations d'API suivantes pour effacer le cache des données de champ : POST /index_name/_cache/clear (cache au niveau de l'index) et POST /_cache/clear (cache au niveau du cluster).
    Remarque : l'effacement du cache peut perturber les requêtes en cours.

Identification et résolution des problèmes de défaillance matérielle

Parfois, les défaillances matérielles peuvent avoir un impact sur la disponibilité des nœuds de cluster. Pour limiter l'impact des défaillances matérielles potentielles, tenez compte des facteurs suivants :

  • Veillez à ce que votre cluster comporte plus d'un nœud. Un cluster à nœud unique constitue un point de défaillance unique. Vous ne pouvez pas utiliser de partitions de réplica pour sauvegarder vos données, car les partitions principales et de réplica ne peuvent pas être affectées au même nœud. Si le nœud tombe en panne, vous pouvez restaurer les données à partir d'un instantané. Pour plus d'informations sur les instantanés, consultez la section Création d'instantanés d'index dans OpenSearch Service. Vous ne pouvez également pas récupérer des données qui n'ont pas déjà été capturées dans le dernier instantané. Pour plus d'informations, consultez Taille des domaines OpenSearch Service et Création et gestion de domaines OpenSearch Service.
  • Assurez-vous de disposer d'au moins un réplica. Un cluster à plusieurs nœuds peut toujours avoir des pertes de données s'il n'y a pas de partitions de réplica.
  • Activez la fonction de prise en compte de zone. Lorsque la prise en compte de zone est activée, OpenSearch Service lance des nœuds de données dans plusieurs zones de disponibilité. OpenSearch Services essaie de distribuer les partitions principales et leurs partitions de réplica correspondantes vers différentes zones de disponibilité. Si un nœud ou une zone de disponibilité ne fonctionne plus, vos données sont toujours disponibles. Pour plus d'informations, consultez la section Configuration d'un domaine multi-AZ dans OpenSearch Service.