Surveiller les requêtes actives

Cette page explique comment surveiller et dépanner les requêtes actives dans votre base de données. Les requêtes actives sont des requêtes de longue durée sur votre base de données qui peuvent affecter les performances. La surveillance de ces requêtes peut aider à identifier les causes de la latence du système et de l'utilisation élevée du processeur.

Vous pouvez afficher les requêtes actives dans le tableau de bord "Insights sur les requêtes". Ces requêtes sont affichées par heure de début de la transaction. Si un grand nombre de requêtes sont en cours d'exécution, les résultats peuvent être limités à un sous-ensemble du nombre total de requêtes en raison des contraintes de mémoire appliquées par le système sur la collecte de données.

Avant de commencer

Pour commencer à afficher les requêtes actives, vous devez activer les fonctionnalités avancées des insights sur les requêtes et activer l'analyse des requêtes actives pour votre instance comme suit:

  1. Dans la console Google Cloud, accédez à la page Clusters.

    accéder aux clusters

  2. Dans la liste des clusters et des instances, cliquez sur une instance principale ou de pool de lecture.

  3. Cliquez sur Insights sur les requêtes.

  4. Cliquez sur Edit settings (Modifier les paramètres).

  5. Dans la fenêtre Modifier les paramètres d'Insights sur les requêtes, sélectionnez Activer les fonctionnalités avancées d'Insights sur les requêtes pour AlloyDB > Analyse des requêtes actives.

  6. Cliquez sur Enregistrer les modifications.

  7. Dans la fenêtre Redémarrage nécessaire à la suite des modifications, cliquez sur Confirmer et redémarrer.

Vous pouvez bénéficier de l'assistance de Gemini dans les bases de données pour vous aider à surveiller et à résoudre les problèmes liés à vos ressources AlloyDB pour PostgreSQL. Pour en savoir plus, consultez la page Observer et résoudre les problèmes avec l'aide de Gemini.

Afficher les requêtes actives

Pour afficher vos requêtes actives, procédez comme suit :

  1. Créez un rôle personnalisé et ajoutez-y l'autorisation IAM (Identity and Access Management) databaseinsights.monitoringViewer.

  2. Ajoutez ce rôle à chaque utilisateur qui consulte des requêtes actives.

  3. Dans la console Google Cloud, ouvrez la page AlloyDB.

    Accéder à AlloyDB

  4. Cliquez sur le nom d'un cluster pour ouvrir sa page Présentation.

  5. Sélectionnez l'onglet Insights sur les requêtes. Le tableau de bord d'insights sur les requêtes affiche des informations sur le cluster sélectionné.

  6. Cliquez sur l'onglet Vue des requêtes actives. L'onglet contient un résumé des requêtes actives en cours d'exécution, ainsi que les 50 premières transactions les plus longues.

    Vous pouvez filtrer les informations en fonction des critères suivants:

    • Bases de données : permet de filtrer la charge des requêtes sur une base de données spécifique ou sur toutes les bases de données.
    • Utilisateur: permet de filtrer la charge des requêtes à partir d'un utilisateur de base de données spécifique ou de tous les utilisateurs.
    • ID de nœud: n'affiche que les instances de pool de lecture. Filtre la charge des requêtes sur un nœud d'instance de pool de lecture spécifique ou sur tous les nœuds.

    Tableau de données récapitulatif de toutes les requêtes actives normalisées: fournit un aperçu de toutes les requêtes actives en affichant le nombre total de connexions en fonction des paramètres suivants:

    • Répartition des connexions actives classées par état de connexion.
    • Répartition des connexions actives en fonction des différents types d'événements d'attente.
    • Distribution des durées des transactions pour les requêtes qui ne sont pas à l'état d'inactivité.

    Transactions les plus longues: fournit une vue d'ensemble des 50 requêtes en cours les plus fréquentes à l'état active et idle in transaction par temps d'exécution décroissant.

Vous pouvez afficher la liste des cinquante premières requêtes actives normalisées dans le tableau de bord "Insights sur les requêtes".

Une requête active normalisée supprime les données sensibles et renvoie un condensé. Deux requêtes identiques, à l'exception des valeurs de la clause WHERE, ont le même condensé. Prenons l'exemple des trois requêtes suivantes:

  • select * from my_table where id = 1;
  • select * from my_table where id = 2;
  • select * from my_table where id = 100;

La version normalisée de ces requêtes est le récapitulatif suivant:

select * from my_table where id = ?;

Une requête exécutée dans différentes sessions s'affiche sous la forme d'entrées différentes dans le tableau de bord.

Afficher les transactions les plus longues

Le tableau suivant décrit les colonnes de la table Transactions les plus longues du tableau de bord "Insights sur les requêtes" :

Nom de la colonne Description
ID du processus L'ID de processus est l'identifiant unique de la connexion à la base de données.
ID de nœud L'ID de nœud est l'identifiant unique du nœud d'instance du pool de lecture sur lequel une requête s'exécute.
Requête Texte de requête SQL normalisé.
État État actuel de la connexion. Les valeurs d'état incluent active et idle in transaction.
Durée de la session Durée de la session en cours (en secondes).
Durée de la transaction Durée de la transaction en cours (en secondes).
Durée de la requête Durée de la requête active actuelle (en secondes). La durée des requêtes à l'état idle in transaction est 0, car elles ne sont pas en cours d'exécution.
Type d'événement d'attente Type d'événement d'attente en cours lors de l'exécution de la requête.
Événement d'attente Événement d'attente en cours lors de l'exécution de la requête.
Base de données Nom de la base de données sur laquelle cette connexion est exécutée.
Nom de l'application Nom de l'application sur laquelle cette connexion est exécutée.
Nom d'utilisateur Nom de l'utilisateur de la base de données connecté à la base de données.
Adresse du client Adresse IP spécifique du client qui a envoyé la requête.
Action Contient un lien permettant de mettre fin à une transaction.

L'écran est actualisé automatiquement toutes les 60 secondes.

L'utilisation des champs Base de données et Utilisateur pour filtrer les données actualise les données de la page.

Pour analyser des données statiques, désactivez l'option Actualisation automatique et utilisez le champ Filtrer du tableau Transactions les plus longues si nécessaire.

Mettre fin à une requête ou à une transaction

Pour mettre fin à une requête ou à une transaction, vous devez disposer du rôle databaseinsights.operationsAdmin. Pour en savoir plus, consultez la page Rôles IAM de base et prédéfinis.

Une transaction peut contenir plusieurs requêtes. Pour identifier les requêtes actives à l'heure actuelle, consultez la colonne Requête du tableau Transaction la plus longue.

Pour mettre fin à une requête ou à une transaction, procédez comme suit :

  1. Sélectionnez la requête dans le tableau Transaction la plus longue.
  2. Faites défiler la page vers la droite jusqu'à la colonne Action.
  3. Cliquez sur Arrêter la connexion.
  4. Dans la fenêtre Arrêter la connexion, cliquez sur Confirmer.

    La page s'actualise après le lancement de la résiliation. Si la terminaison échoue, elle est silencieuse et la requête continue de s'afficher dans la liste de requêtes actives. Si l'arrêt a abouti, la requête ne s'affiche plus dans la liste.

Étape suivante