web-dev-qa-db-fra.com

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

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

  1. Certains peuvent-ils me dire ce que le stateIDLE indique dans la ligne 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 IDLE indique la dernière requête exécutée par la connexion?
  2. Dans la sortie de select * from pg_stat_activity Je vois des lignes avec stateIDLE et le query_start_date plus 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 Select * from pg_stat_activity produit-il les détails à partir d'un instantané maintenu par postgres ou vérifie-t-il les connexions actuelles ouvertes dans postgres pour fournir les détails?
16
tuk

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

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 qu'il en consomme plus RAM que ce que vous pouvez vous permettre. Il est généralement souhaitable qu'un pool de connexions ait quelques connexions inactives, donc les requêtes ne se font pas '' t subir la latence de l'établissement d'une nouvelle connexion.

14
tuk