Partager via


Résoudre les problèmes liés au serveur Azure Cache pour Redis

Cette section traite de la résolution des problèmes causés par des conditions sur un serveur Azure Cache pour Redis ou l’une des machines virtuelles qui l’hébergent.

Notes

Dans ce guide, plusieurs procédures de résolution de problèmes comprennent des instructions pour exécuter des commandes Redis et surveiller diverses mesures de performances. Pour plus d’informations et d’instructions, consultez les articles dans la section Informations supplémentaires .

Charge de serveur élevée

Une charge de serveur élevée signifie que le serveur Redis est occupé et ne parvient pas à suivre les demandes, ce qui entraîne des délais d’expiration. Examinez la métrique Charge du serveur sur votre cache en sélectionnant Superviser dans le menu Ressources à gauche. Le graphique Charge du serveur s’affiche dans le volet de travail sous Insights. Vous pouvez aussi ajouter une métrique dans Charge du serveur sous Métriques.

Voici quelques options à prendre en compte pour une charge de serveur élevée.

Scale-up ou scale-out

Effectuez un scale-out pour ajouter d’autres partitions, de sorte que la charge soit répartie entre plusieurs processus Redis. En outre, envisagez d’effectuer un scale-up pour augmenter la taille du cache avec un plus grand nombre de cœurs de processeur. Pour plus d’informations, consultez FAQ sur la planification d’Azure Cache pour Redis.

Modifications rapides du nombre de connexions clientes

Pour plus d’informations, consultez Éviter les pics de connexion client.

Commandes de longue durée ou coûteuses

Cette section a été déplacée. Pour plus d’informations, consultez Commandes de longue durée.

Mise à l'échelle

Les opérations de mise à l’échelle sont gourmandes en ressources processeur et mémoire, car elles peuvent impliquer le déplacement des données autour des nœuds et la modification de la topologie du cluster. Pour plus d’informations, consultez Mise à l’échelle.

Maintenance des serveurs

En cas de basculement d’Azure Cache pour Redis, toutes les connexions clientes du nœud arrêté sont transférées vers le nœud qui est toujours en cours d’exécution. La charge de serveur peut fortement augmenter en raison du nombre accru de connexions. Vous pouvez essayer de redémarrer vos applications clientes afin que toutes les connexions clientes soient recréées et réparties entre les deux nœuds.

Utilisation élévée de la mémoire

Une sollicitation de la mémoire sur le serveur peut entraîner divers problèmes de performances qui retardent le traitement des demandes. En cas de saturation de la mémoire, le système pagine les données sur le disque, ce qui ralentit considérablement le système.

La saturation de la mémoire peut avoir différentes causes, dont les suivantes :

  • Le cache contient beaucoup de données et il est sur le point d’atteindre sa capacité maximale.
  • Le serveur Redis connaît une fragmentation de mémoire élevée.

Une fragmentation peut s’observer quand un modèle de charge stocke des données dont la taille est très variable. Cela peut être le cas, par exemple, lorsque les données ont une taille allant de 1 Ko à 1 Mo. Quand une clé de 1 Ko est supprimée de la mémoire existante, une clé de 1 Mo est trop grande pour pouvoir être ajoutée sans fragmentation. De même, si une clé de 1 Mo est supprimée et qu’une clé de 1,5 Mo est ajoutée, celle-ci ne tient pas dans la mémoire récupérée existante. Une certaine quantité de mémoire libre est alors inutilisée et entraîne une fragmentation plus grande.

Si la valeur used_memory_rss est supérieure à 1,5 fois la métrique used_memory, une fragmentation de la mémoire se produit. La fragmentation peut provoquer des problèmes dans les cas suivants :

  1. L’utilisation de la mémoire est proche de la limite de mémoire maximale pour le cache, ou
  2. la valeur UsedMemory_RSS est supérieure à la limite de mémoire maximale, ce qui peut entraîner un défaut de page en mémoire.

Si un cache est fragmenté et s’exécute dans des conditions de saturation de la mémoire, le système effectue un basculement pour tenter de récupérer la mémoire RSS (Resident Set Size).

Redis expose deux métriques, used_memory et used_memory_rss, via la commande INFO. Ces métriques peuvent vous aider à détecter le problème de mémoire. Vous pouvez afficher ces métriques à l’aide du portail.

Vérifiez que les valeurs maxmemory-reserved et maxfragmentationmemory-reserved sont correctement définies.

Vous pouvez apporter plusieurs modifications pour maintenir une utilisation correcte de la mémoire :

Pour obtenir des recommandations sur la gestion de la mémoire, consultez Bonnes pratiques de gestion de la mémoire.

Commandes de longue durée

Cette section a été déplacée. Pour plus d’informations, consultez Commandes de longue durée.

Limitation de la bande passante côté serveur

Cette section a été déplacée. Pour plus d’informations, consultez Limitation de la bande passante réseau.

Informations supplémentaires