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.
- Charge de serveur élevée
- Utilisation élévée de la mémoire
- Commandes de longue durée
- Limitation de la bande passante côté serveur
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 :
- L’utilisation de la mémoire est proche de la limite de mémoire maximale pour le cache, ou
- 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 :
- Configurez une stratégie de mémoire et définissez des délais d’expiration sur vos clés. Cette stratégie peut ne pas suffire si vous constatez une fragmentation.
- Configurez une valeur maxmemory-reserved suffisamment grande pour compenser la fragmentation de la mémoire.
- Créez des alertes pour des métriques comme la mémoire utilisée, afin d’être averti le plus tôt possible des impacts potentiels.
- Effectuez une mise à l’échelle pour une plus grande taille de cache et une plus grande capacité de mémoire. Pour plus d’informations, consultez FAQ sur la planification d’Azure Cache pour Redis.
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.