Que signifie l'état IDLE dans une ligne de pg_stat_activity?

14

Quelqu'un peut-il résoudre mes doutes ci-dessous pg_stat_activityen termes de postgres 9.5?

  1. Est-ce que certains peuvent me faire savoir ce que le state IDLEdénote dans la rangée de pg_stat_activity? Est-ce comme s'il vérifiait toutes les connexions ouvertes à postgres et si la connexion n'exécute aucune requête, alors IDLEdénote la dernière requête exécutée par la connexion?
  2. Dans la sortie de select * from pg_stat_activityje vois des lignes avec state IDLEet query_start_dateplus de 2 jours? Qu'est-ce que cela signifie? Devrais-je être inquiet à ce sujet?
  3. Quelqu'un peut-il me faire savoir comment pg_stat_activity est rempli? Si j'exécute une requête comme celle Select * from pg_stat_activity-ci, produit-elle les détails d'un instantané maintenu par postgres ou vérifie-t-elle les connexions ouvertes dans postgres pour fournir les détails?
tuk
la source
re 1): postgresql.org/docs/current/static/…
a_horse_with_no_name

Réponses:

11

Cela a été répondu dans la liste de diffusion postgres

Chaque ligne de pg_stat_activity représente une connexion établie au serveur à partir d'un client. "inactif" signifie que le client n'exécute pas actuellement une requête ni dans une transaction.

Si query_start_date a 2 jours, cela signifie simplement que la dernière requête à exécuter sur cette connexion était il y a deux jours.

Ce n'est pas vraiment une raison de s'inquiéter, à moins que vous n'ayez autant de connexions ouvertes que cela consomme plus de RAM que ce que vous pouvez vous permettre. Il est généralement souhaitable qu'un pool de connexions ait quelques connexions inactives afin que les requêtes ne souffrent pas de la latence de l'établissement d'une nouvelle connexion.

tuk
la source