Pourquoi est-ce que je constate une utilisation élevée ou croissante du processeur dans mon cluster ElastiCache for Redis ?
Lecture de 5 minute(s)
0
Je constate une utilisation élevée ou croissante du processeur dans mon cluster Amazon ElastiCache for Redis. Comment puis-je résoudre ce problème ?
Brève description
Il existe deux métriques de processeur Amazon CloudWatch pour ElastiCache for Redis :
- EngineCPUUtilization : cette métrique indique l'utilisation du CPU du thread de moteur Redis. Comme Redis est à thread unique, il est recommandé de surveiller la métrique EngineCPUUtilization pour les nœuds de quatre vCPU ou plus.
- CPUUtilization : cette métrique indique le pourcentage d'utilisation du CPU pour l'ensemble de l'hôte. Pour les nœuds plus petits avec deux vCPU ou moins, utilisez la métrique CPUUtilization afin de surveiller la charge de travail du cluster.
Solution
Métrique EngineCPUUtlilization élevée
Les raisons courantes suivantes expliquent les métriques EngineCPUUtilization élevées :
- Une commande de longue durée qui consomme beaucoup de temps processeur : les commandes à haute complexité temporelle, telles que keys, hkeys, hgetall, etc., consomment plus de temps processeur. Pour des suggestions de performances et de complexité en temps pour chaque commande, veuillez consulter la page Commandes sur le site web redis.io (Langue Français non garanti). Les scripts Lua (exécutés par les commandes Redis EVAL ou EVALSHA) constituent une opération atomique dans Redis. Toutes les activités du serveur sont bloquées pendant toute la durée d'exécution d'un script Lua, ce qui entraîne une métrique EngineCPUUtilization élevée. Vérifiez s'il existe des commandes ou un script Lua de longue durée à l'aide du journal Redis Slow.
- Un nombre élevé de demandes : vérifiez les statistiques des commandes afin de déterminer s'il existe des rafales de commandes ou si la latence augmente. Vous pouvez vérifier les statistiques des commandes à l'aide de métriques CloudWatch telles que GetTypeCmds ou HashBasedCmds. Vous pouvez également utiliser la commande Redis info commandstats. Si vous constatez un nombre élevé de demandes en raison de la charge de travail attendue sur l'application, envisagez de mettre à l'échelle le cluster.
- Sauvegarde et réplication : vérifiez la métrique SaveInProgress afin de déterminer si une sauvegarde ou une réplication est en cours. Cette métrique binaire renvoie « 1 » lorsqu'une sauvegarde en arrière-plan (avec ou sans bifurcation) est en cours. La métrique renvoie « 0 » si aucun enregistrement en arrière-plan n'est en cours. Assurez-vous de disposer de suffisamment de mémoire pour créer un instantané Redis.
- Nombre élevé de nouvelles connexions : l'établissement d'une connexion TCP est une opération coûteuse en termes de calcul, en particulier pour les clusters compatibles TLS. Un nombre élevé de nouvelles demandes de connexion client sur une courte période peut entraîner une augmentation de la métrique EngineCPUUtilization. Depuis Redis 6.2, des améliorations de performances sont désormais disponibles pour les clusters compatibles TLS utilisant des types de nœuds x86 de huit vCPU (ou plus) sur des types de nœuds Graviton2 de quatre vCPU (ou plus). Pour obtenir des recommandations sur la gestion d'un nombre de connexions élevé, veuillez consulter la section Bonnes pratiques : clients Redis et Amazon ElastiCache for Redis (Langue Français non garanti).
- Nombre élevé d'expulsions : Redis expulse les clés conformément au paramètre maxmemory-policy. L'expulsion se produit lorsque le cache ne dispose pas de suffisamment de mémoire pour contenir de nouvelles données. Si le volume d'expulsion est élevé, la métrique EngineCPUUtilization augmente car Redis est occupé à expulser les clés. Le volume des expulsions peut être surveillé à l'aide des métriques CloudWatch Evictions. Si le taux d'expulsion est élevé, augmentez la taille de votre cluster en utilisant un type de nœud plus important, ou montez en puissance en ajoutant des nœuds supplémentaires.
- Nombre élevé de récupérations : pour libérer de la mémoire, Redis analyse puis supprime toutes les clés qui ont dépassé leur délai d'expiration. Ce processus est appelé « récupération ». Si le nombre d'expirations est élevé, la métrique EngineCPUUtilization augmente car Redis est occupé à récupérer les clés. Vous pouvez surveiller le nombre d'événements d'expiration de clé à l'aide des métriques CloudWatch Reclaimed. Il est recommandé de ne pas faire expirer trop de clés en même temps en exécutant, par exemple, la commande Redis EXPIREAT.
Pour plus d'informations sur la résolution des problèmes liés à la métrique EngineCPUUtilization, veuillez consulter la section Résolution de problèmes liés aux connexions : utilisation du CPU (Langue Français non garanti).
Métrique CPUUtilization élevée
Les raisons courantes suivantes expliquent les métriques CPUUtilization élevées :
- Trafic réseau élevé ou connexions élevées : vérifiez NewConnections, NetworkBytesIn, NetworkBytesOut, NetworkPacketsIn et NetworkPacketsOut qui sont des métriques CloudWatch.
- Métrique EngineCPUUtilization élevée et E/S asynchrones gérées par d'autres threads : pour plus de détails sur la gestion améliorée des E/S, consultez la section Amélioration des performances Amazon ElastiCache avec les instances Amazon EC2 M5 et R5.
- Gestion continue de la maintenance et des mises à jour des services : La maintenance et les mises à jour de services nécessitent une capacité de calcul. Par conséquent, vous remarquerez peut-être un pic de la métrique CPUUtilization lors de ces événements. Vérifiez la fenêtre de maintenance pour voir si le pic coïncide avec la fenêtre. Il est recommandé de définir la fenêtre de maintenance au moment de la plus faible utilisation afin de minimiser l'impact. Pour plus d'informations, consultez la page d'aide relative aux mises à jour de maintenance et de service gérées Amazon ElastiCache.
- Une pagination élevée et des opérations telles que la sauvegarde : Une mémoire insuffisante sur le nœud peut provoquer une pagination de la mémoire par le noyau vers le système d'échange. Si la pagination est excessive, vous pouvez constater une augmentation de la métrique CPUUtilization. De même, si la charge sur le nœud est élevée lors d'opérations telles que la sauvegarde ou la mise à l'échelle, vous pouvez constater une augmentation de la métrique CPUUtilization. Pour obtenir des recommandations sur les métriques permettant d'identifier la cause d'un pic, consultez la section Meilleures pratiques de surveillance avec Amazon ElastiCache for Redis en utilisant Amazon CloudWatch.
AWS OFFICIELA mis à jour il y a 2 ans
Aucun commentaire
Contenus pertinents
- demandé il y a un anlg...
- demandé il y a 6 moislg...
- demandé il y a 8 moislg...
- demandé il y a 2 moislg...
- demandé il y a 10 moislg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 2 ans