Comment résoudre les erreurs « Le stockage permanent est plein » dans Amazon MQ pour ActiveMQ ?

Lecture de 6 minute(s)
0

Je ne parviens pas à envoyer de messages à mon agent Amazon MQ pour ActiveMQ. Lorsque je consulte les journaux de l’agent dans Amazon CloudWatch, un message d'erreur « Le stockage permanent est plein » s'affiche. Quelle est la cause de l'erreur et comment résoudre le problème ?

Brève description

Amazon MQ pour ActiveMQ renvoie une erreur Le stockage permanent est plein à CloudWatch lorsqu'un agent atteint sa limite de stockage. Lorsqu'un agent Amazon MQ pour ActiveMQ atteint sa limite de stockage, il ne peut pas recevoir de messages.

Pour résoudre les erreurs Le stockage permanent est plein, confirmez d'abord la cause de l'erreur en examinant les métriques CloudWatch suivantes pour votre agent :

  • Pourcentage d'utilisation du stockage
  • Fichiers journaux pour une récupération complète
  • Fichiers journaux pour une récupération rapide

Ensuite, en fonction des métriques de votre agent, réduisez la quantité de données enregistrées dans le stockage permanent de l’agent selon les besoins.

Pour éviter que l'erreur ne se reproduise, consultez la section Bonnes pratiques pour empêcher les erreurs « Le stockage permanent est plein » de cet article. Pour plus d'informations, voir Stockage de messages AMQ et Contrôle du flux de production dans la documentation Apache ActiveMQ.

Exemple de message d'erreur CloudWatch « Le stockage permanent est plein » pour un agent Amazon MQ pour ActiveMQ

INFO | Usage(default:store:queue://broker.name:store) percentUsage=99%, usage=537210471, limit=536870912, percentUsageMinDelta=1%;Parent:Usage(default:store) percentUsage=100%, usage=537210471, limit=536870912,percentUsageMinDelta=1%: Persistent store is Full, 100% of 536870912. Stopping producer (ID:xxxx) to prevent flooding queue://broker.name. See http://activemq.apache.org/producer-flow-control.html for more info (blocking for: 155s)

Solution

Confirmer la cause de l'erreur

1.    Ouvrez la console CloudWatch.

Important : assurez-vous de vous connecter à la même région AWS que celle dans laquelle se trouve votre agent.

2.    Dans le panneau de navigation de gauche, sélectionnez Metrics (Métriques). Choisissez ensuite Toutes les métriques. La page Metrics (Métriques) de CloudWatch s'ouvre.

3.    Sur la page Metrics (Métriques) choisissez Amazon MQ. Ensuite, choisissez Broker Metrics(Métriques d’agent).

4.    Dans le champ de recherche, saisissez le nom de votre agent. Appuyez ensuite sur la touche Entrée de votre clavier. Toutes les métriques CloudWatch de l’agent que vous avez saisies dans la zone de recherche s'affichent.

5.    Vérifiez la valeur de la métrique de Pourcentage d’utilisation du stockage. Si la métrique de Pourcentage d'utilisation du stockage de votre agent atteint 100, l’agent cesse de recevoir des messages et renvoie une erreur Le stockage permanent est plein.

6.    Si la métrique de pourcentage d'utilisation du stockage de votre agent est de 100 (ou proche de 100), vérifiez les valeurs des métriques suivantes pour en déterminer la cause :

  • Fichiers journaux pour la récupération complète : indique le nombre de fichiers journaux qui sont rejoués après un arrêt correct. Une augmentation de cette métrique indique que les consommateurs de votre agent sont lents ou qu'il y a trop de messages en attente dans le stockage permanent.
  • Fichiers journaux pour une récupération rapide : indique le nombre de fichiers journaux qui sont rejoués après un arrêt incorrect. Une augmentation de cette métrique indique qu'il y a trop de messages en attente dans le stockage permanent.

Remarque : un fichier journal ActiveMQ KaHaDB (fichier de données) peut rester dans un stockage permanent pour l'une des raisons suivantes :

  • Le fichier de données inclut un message en attente pour un abonnement à une rubrique durable ou une destination.
  • Le fichier de données comprend un accusé de réception individuel (ACK) pour un message contenu dans un fichier de données en cours d'utilisation.
  • Le fichier de données fait référence à une transaction en attente.
  • Le fichier de données est un fichier journal et une action d'écriture y est en attente.

Pour plus d'informations, consultez Pourquoi les fichiers journaux de KahaDB sont-ils conservés après le nettoyage dans la documentation ActiveMQ.

Pour réduire la quantité de données enregistrées dans un stockage permanent Amazon MQ pour ActiveMQ de l’agent

Consommez ou supprimez les messages en attente qui se trouvent dans les files d'attente et les rubriques durables de l’agent

Pour obtenir des instructions, consultez Comment purger une file d'attente dans la documentation Apache ActiveMQ.

Remarque : Actuellement, Amazon MQ pour ActiveMQ ne prend pas en charge les extensions de gestion Java (JMX). Vous devez utiliser la console Web ActiveMQ pour purger les files d'attente et les rubriques durables de votre agent.

Consommez ou supprimez les messages expirés qui se trouvent dans la file d'attente des lettres mortes (DLQ) de l’agent

Pour obtenir des instructions, reportez-vous à la section Ignorer automatiquement les messages expirés de Redistribution des messages et gestion de la DLQ dans la documentation Apache ActiveMQ.

Remarque : pour consommer des messages dans la DLQ de votre agent, configurez d'abord la DLQ en tant que file d'attente normale. Configurez ensuite vos consommateurs pour qu'ils interrogent directement la DLQ.

Bonnes pratiques pour éviter les erreurs « Le stockage permanent est plein »

Vérifiez que vous avez choisi le bon type d'instance d’agent pour votre cas d'utilisation

Pour plus d'informations, consultez Choisir le type d'instance d’agent approprié pour le meilleur débit dans le Amazon MQ Developer Guide (Guide du développeur).

Remarque : selon votre cas d'utilisation, l'ajout de consommateurs à votre agent peut parfois améliorer le débit des messages de l’agent.

Augmentez le nombre et la vitesse des consommateurs que vous utilisez

Lorsque vous utilisez ActiveMQ en mode permanent, l'écriture sur le stockage se produit généralement lorsqu'il y a trop peu de consommateurs ou lorsque les consommateurs sont lents. L'augmentation du nombre et de la vitesse des clients que vous utilisez peut contribuer à réduire la quantité de données que votre agent écrit sur un stockage permanent.

Définissez une alarme CloudWatch en fonction de la métrique « Pourcentage d'utilisation du stockage » de votre agent

Si la métrique du pourcentage d'utilisation du stockage de votre agent atteint 100 (ou près de 100), l’agent cesse de recevoir des messages. Pour que CloudWatch vous alerte lorsque cette métrique atteint un seuil spécifique, vous pouvez définir une alarme dans CloudWatch. Ensuite, vous pouvez prendre les mesures préventives décrites dans cet article avant que l'erreur ne se produise.

Pour obtenir des instructions, consultez Créer une alarme CloudWatch basée sur un seuil statique dans le guide de l’utilisateur Cloudwatch.


Informations connexes

Garantir des performances Amazon MQ efficaces

Journalisation et surveillance des agents Amazon MQ pour ActiveMQ

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans