PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 12/04/2013 11:29:21

PpPool
Membre

[9.2] – empilement des sessions IDLE

Bonjour

Release Postgres 9.2

Sur une instance, nous avons un comportement atypique que nous ne savons solutionner.

Nous observons un empilement de sessions (status IDLE ) -   Au niveau de pg_stats_activity – query : SET extra_float_digits = 3

Ce qui est encore plus surprenant c’est que ce phénomène survient essentiellement sur une database qui n’est pour le moment pas requêtée au niveau applicatif.

Des sessions d’ailleurs de ce type ont été trapées en pleine nuit !! (Aucune activité applicative batch lancée !!)

Nous avons setté  la valeur de extra_float_digits directement dans le postgresql.conf – mais le problème persiste.

Ce problème est bloquant car l’empilement de ces sessions nécessite plusieurs restarts quotidiens. Nous atteignons vite la limite de max_connections (settée à 100 – ce qui est largement suffisant vu le nombre d’utilisateurs actuels (<10 threads //).

Des idées . effets de bord du vaccum ?
Merci du coup de main

Hors ligne

#2 13/04/2013 03:13:42

gleu
Administrateur

Re : [9.2] – empilement des sessions IDLE

Je ne comprends pas bien le problème. Si au niveau de pg_stat_activity, vous avez le statut idle pour chaque connexion, ce n'est pas un problème. La requête affichée est la dernière requête exécutée. Donc il n'y a pas d'activité.

Quel est votre problème réellement ?


Guillaume.

Hors ligne

#3 15/04/2013 11:51:27

PpPool
Membre

Re : [9.2] – empilement des sessions IDLE

Bonjour,

Merci de vous intéresser à mon problème.

Un grand nombre de sessions sont lancées (semble t-il par le moteur postgres) pour exécuter la requête : SET extra_float_digits = 3
ces sessions s'empilent au sens où elles ne se libérent pas - A un moment donné les sessions clientes ne peuvent plus se connecter (max_connections atteint)

Nous avons découvert vendredi que pg_bouncer était activé sur cette instance. Nous l'avons arrêté.

Beaucoup moins de sessions semble t-il sont lancées mais nous avons tjs des sessions qui exécutent cette requête et qui ne se libérent pas.
Pour nous ces requêtes ne sont pas lancées par l'applicatif

Pour vous donner un ordre idées - actuellement :
37 sessions au niveau pg_stat_activity
20 sessions sont en status idle avec cette requête comme indication de traitement.

1- je voudrai tout d'abord comprendre pourquoi ces requêtes sont lancées ?
2- je voudrai finalement qu'elles se libérent très rapidement -

Merci pour votre aide

Hors ligne

#4 15/04/2013 11:57:38

rjuju
Administrateur

Re : [9.2] – empilement des sessions IDLE

Utilisez-vous un autre pooler de connexion ?

Sinon, postgres ne lance pas de connexion tout seul, il s'agit forcément d'un logiciel installé. Vous pouvez voir d'où viennent les connexion avec la colonne client_addr de la vue pg_stat_activity.

Hors ligne

#5 10/05/2013 08:50:56

KrysKool
Administrateur

Re : [9.2] – empilement des sessions IDLE

Bonjour

Si des sessions sont en IDLE, c'est que le traitement est fini, ais que la connexion à la base n'est pas fermé, il faut donc regarder quelle application les a lancés (PostgreSQL ne fait rien tout seul)

sinon utiliser pg_terminate_backend() avec le numéro de PID du process lancé celui-ci est disponible dans pg_stat_activity dans la colonne procpid ou pid (depuis la 9.2)


Christophe Chauvet
Directeur Technique
Sylëam Info Services
Mon site

Hors ligne

Pied de page des forums