Comment éviter les erreurs Databases for Redis courantes?

Databases for Redis est une base de données en mémoire. Il diffère des bases de données persistantes traditionnelles par la façon dont il accepte, traite et stocke les données. Les informations suivantes mettent en évidence les erreurs courantes que vous pouvez rencontrer, les raisons de ces erreurs et les solutions que vous pouvez appliquer pour les corriger.

Erreur: message Connection to master lost

Databases for Redis fonctionne avec deux membres (maître et réplique) et trois sentinelles. Les raisons suivantes peuvent être à l'origine du message connection to master lost:

a. En raison du nombre réduit d'opérations d'entrée/sortie par seconde (IOPS), le maître est occupé et ne répond pas aux sentinelles, ce qui renvoie ce message d'erreur dans les journaux de la plate-forme.

b. En raison du temps d'attente du réseau, les sentinelles ne peuvent pas communiquer avec le maître.

c. Activités de maintenance planifiées.

d. Mises à niveau de version mineure.

Solutions

Essayez les solutions suivantes pour corriger l'erreur:

a. Augmentez la taille du disque. 1 Go est égal à 10 IOPS.

b. Passer au calcul isolé pour l'allocation de ressources dédiées.

c. Augmentez la taille de la mémoire RAM.

d. La logique RETRY est requise. Par conséquent, assurez-vous qu'elle est implémentée.

e. La réplique sera automatiquement promue maître après quelques secondes.

f. Implémentez des règles memory eviction ou TTL dans votre instance Redis.

IBM® Cloud Databases n'effectue aucune activité sur le nœud maître. Si nécessaire, toutes les activités sont effectuées sur le noeud de réplique, qui est ensuite promu en maître. Les bases de données sont définies pour attendre 30 secondes pour trouver le noeud maître avant que la promotion de la réplique n'ait lieu.

Erreur: La fonction Fsync Asynchronous AOF prend trop de temps (le disque est occupé?)

AOF est Append Only File. Il s'agit du journal écrit sur le disque persistant Redis lorsque le paramètre persistant est défini sur on.

Redis utilise les fichiers AOF et RDB pour écrire son journal et RDB pour les instantanés.

Voici quelques-unes des raisons pour lesquelles vous pouvez voir cette erreur:

a. En raison d'un nombre insuffisant d'IOPS, Redis ne parvient pas à écrire sur le disque.

b. Une sauvegarde Databases for Redis peut s'exécuter en même temps que votre lot.

c. Votre application peut placer des appels d'API inconnus dans l'instance Redis.

A l'exception de PSYNC qui est utilisé pour les métriques, nous ne demandons aucune autre API dans votre instance.

Solutions :

Essayez les solutions suivantes pour corriger l'erreur:

a. Augmentez la taille du disque. Une recommandation de stade est de 30% de plus que le volume prévu.

b. Si Redis est à sa capacité maximale, divisez une seule instance Redis en plusieurs instances et ajustez votre architecture d'application.

c. Désactivez la persistance si elle n'est pas requise. Passez en mode cache à la place.

La taille du disque ne peut pas être réduite, mais la mémoire peut l'être. Comme Redis est un magasin de données en mémoire, nous vous recommandons d'évaluer la taille de vos données en cours avant de réduire la mémoire de votre instance, car une réduction importante peut entraîner une erreur.

Erreur: La mise à l'échelle d'une instance est bloquée ou prend plus de temps que prévu

Avec IBM Cloud, vous pouvez mettre à l'échelle ou redimensionner votre instance à mesure que vos besoins en données augmentent. Nous proposons la mise à l'échelle automatique et la mise à l'échelle manuelle à partir de l'interface utilisateur, de l'interface de ligne de commande et des API. Cependant, soyez prudent lorsque vous redimensionnez votre instance. Si la mise à l'échelle prend plus de temps que prévu, cela peut être dû à l'une des raisons suivantes:

a. Votre instance se trouve déjà dans la plus grande instance (cores*rams) et aucun cluster plus grand n'est actuellement disponible pour déplacer votre charge de travail. Dans ce cas, un nouveau cluster est formé et votre instance est déplacée, ce qui peut prendre quelques minutes.

b. Vous avez réduit considérablement sa mémoire (par exemple, de 16 Go de mémoire RAM à 10 Go de mémoire RAM). Toutefois, la taille de votre magasin de données (disque) est supérieure, par exemple 11 Go. Dans ces cas, il n'y a pas suffisamment d'espace dans la mémoire RAM pour lire les données à partir du disque, et la formation peut être bloquée.

Solutions :

Essayez les solutions suivantes pour corriger l'erreur:

a. Redis est à unité d'exécution unique pour ses opérations principales. Vous devez utiliser moins de coeurs et plus de mémoire. Cela augmente la probabilité de disponibilité d'un cluster.

b. Augmentez votre mémoire RAM et votre disque en fonction de vos besoins d'E-S.

c. Ne réduisez pas votre mémoire RAM de façon drastique. Il vous est conseillé de décrémenter progressivement.

Veiller à ce qu'il reste de la mémoire en filigrane pour que Redis puisse exécuter ses propres processus.

Erreur : READONLY Vous ne pouvez pas écrire sur un réplica en lecture seule

Databases for Redis comporte deux noeuds, maître et réplique. Les utilisateurs ne peuvent se connecter qu'au noeud maître et le noeud de réplique est utilisé pour garantir la haute disponibilité, qui est généralement inaccessible aux utilisateurs. Toutefois, comme pour toute connexion distante, une commutation peut se produire lorsque la réplique est promue en maître. Vous pouvez rencontrer un blip momentané en service, et aucun autre impact n'est attendu si les noeuds sont configurés correctement.

a. En raison de la baisse des IOPS, le maître est occupé et ne répond pas aux sentinelles, ce qui renvoie ce message d'erreur dans les journaux de la plateforme.

b. En raison du temps d'attente du réseau, les sentinelles ne peuvent pas communiquer avec le maître.

c. Maintenance planifiée.

d. Mises à niveau de version mineure.

Solutions :

Essayez les solutions suivantes pour corriger l'erreur:

a. Incluez la logique de relance et de reconnexion dans votre conception d'application. Vous pouvez utiliser des bibliothèques telles que ioredis et noderedis. Pour plus de détails, voir Détection et traitement des erreurs avec l'article de blogue Redis.

b. Certains clients ont intégré une logique de relance et de reconnexion. Vous pouvez également utiliser ces clients.

c. La logique de relance et de reconnexion est fortement recommandée pour tous les services de cloud.