Lorsque votre instance Tair (compatible avec Redis OSS) rencontre une latence élevée ou des délais d'attente dépassés, les journaux de requêtes lentes vous aident à identifier les commandes ayant dépassé un seuil de temps d'exécution et à localiser la cause racine. Les journaux sont générés à deux niveaux : les nœuds de données et les nœuds proxy, chacun mesurant différentes parties du cycle de vie de la requête.
Les journaux de requêtes lentes ne sont pas pris en charge pour les instances Redis Open-Source Edition 2.8. Pour afficher les journaux lents d'une instance 2.8, accédez à CloudDBA > Slow Queries dans la console. Les journaux lents des instances 2.8 n'incluent pas les adresses IP des clients.
Fonctionnement des journaux de requêtes lentes
Tair génère des journaux de requêtes lentes à partir de deux sources. Chaque source mesure le temps d'exécution différemment et sert un objectif de diagnostic distinct.
| Source du journal | Ce que mesure la durée | Rétention | Recommandé pour |
|---|---|---|---|
| Nœud de données | Temps nécessaire pour exécuter la commande sur le nœud de données uniquement. Exclut la transmission réseau et la latence de mise en file d'attente. Dans la plupart des cas, peu de journaux de requêtes lentes sont générés sur les nœuds de données en raison des hautes performances de l'instance. | 72 heures | Identification des commandes lentes au niveau du moteur |
| Nœud proxy | Temps écoulé entre l'envoi de la requête par le proxy à un nœud de données et la réception de la réponse. Inclut l'exécution de la commande, la transmission réseau et la latence de mise en file d'attente. | 72 heures | Dépannage des problèmes de délai d'attente (plus proche de la latence réelle de l'application) |
Le stockage est illimité pour les deux sources de journaux.
Les journaux lents des nœuds proxy ne sont pas disponibles pour les instances Standard.
Paramètres
Paramètres des nœuds de données
| Paramètre | Valeur par défaut | Unité | Description |
|---|---|---|---|
slowlog-log-slower-than |
20000 | Microsecondes | Les commandes dont l'exécution dépasse cette valeur sont journalisées. 20 000 microsecondes équivalent à 20 millisecondes. Comme cette valeur exclut la latence réseau et la mise en file d'attente, la latence de bout en bout réelle est généralement plus élevée. |
slowlog-max-len |
1024 | — | Nombre maximal d'entrées de journal de requêtes lentes stockées. |
Paramètres des nœuds proxy
| Paramètre | Valeur par défaut | Unité | Description |
|---|---|---|---|
rt_threshold_ms |
500 | Millisecondes | Les commandes dont l'exécution dépasse cette valeur sont journalisées. Définissez ce paramètre proche de votre période de délai d'attente client, généralement entre 200 et 500 millisecondes. |
Pour modifier ces paramètres, consultez Configurer les paramètres de l'instance.
Consulter les journaux lents dans la console
Connectez-vous à la console et accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où réside votre instance, puis cliquez sur l'ID de l'instance.
Dans le volet de navigation de gauche, choisissez Logs > Slow Logs.
-
Sur la page Slow Logs, filtrez les journaux par plage horaire ou par mot-clé. Pour les instances en cluster et avec séparation lecture/écriture, vous pouvez également filtrer par type de nœud et ID de nœud.
Par défaut, le champ Host Address affiche les adresses IP des nœuds proxy pour les instances en cluster et avec séparation lecture/écriture. Pour afficher plutôt les adresses IP des clients, définissez
ptod_enabledsur1dans Parameter Settings . Pour plus de détails, consultez Configurer les paramètres de l'instance .
Entrées de journal lent non pertinentes
Certaines entrées reflètent le comportement interne du moteur plutôt que les performances réelles des commandes. Vous pouvez ignorer les entrées suivantes.
| Entrée | Description |
|---|---|
latency:eventloop |
Tair (compatible avec Redis OSS) fonctionne en mode événementiel. Une boucle d'événements couvre la lecture, l'analyse, l'exécution des commandes et le renvoi des résultats. La durée de latency:eventloop reflète le temps total d'un cycle de boucle d'événements. |
latency:pipeline |
En mode pipeline, le client envoie des commandes et reçoit des réponses par lots. Pour les instances en cluster, les nœuds proxy utilisent le mode pipeline pour envoyer des requêtes par lots aux nœuds de données backend. La durée de latency:pipeline reflète le temps total de traitement de toutes les requêtes dans un lot pipeline. |
latency:fork |
La durée de latency:fork reflète le temps nécessaire pour créer un processus enfant. Des ensembles de données plus volumineux entraînent des temps de création plus longs. |
Référence API
| Opération | Description |
|---|---|
| DescribeSlowLogRecords | Récupère les journaux de requêtes lentes d'une instance dans une plage horaire spécifiée. |
Rubriques connexes
Utiliser les journaux de requêtes lentes pour résoudre les problèmes de délai d'attente