Maison  >  Article  >  base de données  >  Exemple d'analyse du dépannage du délai d'expiration Redis

Exemple d'analyse du dépannage du délai d'expiration Redis

WBOY
WBOYavant
2023-05-30 18:31:291009parcourir

Au cours de notre travail il y a quelques jours, nous avons soudainement reçu une alerte indiquant que notre Redis était tombé en panne, et de nombreuses personnes discutaient d'un certain délai d'attente de connexion Redis. Je pensais qu'il y avait un gros problème au début, mais qui savait qu'il se rétablirait après un certain temps. À ce moment-là, je me suis connecté au serveur et j'ai vérifié la surveillance. Jetez un œil à QPS pour la première fois :

Exemple danalyse du dépannage du délai dexpiration Redis

Vous pouvez voir que le QPS n'est pas élevé, mais pourquoi n'avez-vous pas obtenu les données pendant un certain temps ? Continuez ensuite à regarder l'utilisation du processeur de Redis :

Exemple danalyse du dépannage du délai dexpiration Redis

Vous pouvez voir que le CPU est saturé, ce qui peut expliquer pourquoi le graphique est cassé. Parce que redis est monothread, après avoir utilisé 100% du CPU, il ne peut pas traiter d'autres commandes et zabbix ne peut pas exécuter la commande info pour obtenir. qps. Nous savons donc déjà que le problème est causé par la saturation du processeur, alors quelle en est la raison ? Continuez ensuite à vérifier s'il y a des journaux lents pendant la période d'utilisation élevée du processeur :

Exemple danalyse du dépannage du délai dexpiration Redis

Cela ne semble pas être la cause d’une utilisation élevée du processeur, il est donc difficile de dépanner. Cet exemple est un nœud maître et un nœud esclave. Alors laissez-moi jeter un œil à l'utilisation du processeur de la bibliothèque esclave :

Exemple danalyse du dépannage du délai dexpiration Redis

Putain de merde, que se passe-t-il ? Pourquoi 74 % du CPU de la bibliothèque n'est-il pas utilisé ? N'est-ce pas scientifique ? Quoi qu'il en soit, vérifiez s'il y a des journaux lents de la bibliothèque esclave :

Exemple danalyse du dépannage du délai dexpiration Redis

Putain de merde, que se passe-t-il ? Personne n'utilise la bibliothèque esclave. Vérifiez si lecture seule :

127.0.0.1:6103> CONFIG GET "slave-read-only"
1) "slave-read-only"
2) "yes"
127.0.0.1:6103> 

Il semble être en lecture seule, ce qui m'a dérouté. Enfin, il m'est soudainement venu à l'esprit que la bibliothèque principale avait une grosse clé qui avait expiré à ce stade, et que le fonctionnement lent de la clé expirée dans la bibliothèque principale n'enregistrerait pas les journaux lents. L'expiration de la clé de la bibliothèque esclave est supprimée. la bibliothèque principale initiant une instruction DEL. À ce stade, la bibliothèque esclave enregistrera le journal lent. À partir du journal lent ci-dessus, vous pouvez voir que l'opération DEL maximale est de 335 ms. Ce n'est pas étonnant qu'il y ait des délais d'attente de connexion aux applications.

Utilisez à nouveau la commande info commandstats pour voir :

Exemple danalyse du dépannage du délai dexpiration Redis


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer