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 14/06/2012 12:50:29

ebs
Membre

PgPool-II - intérrogation sur le connection pooler

Bonjour,

Je suis dans le cas suivant:
- deux serveurs postgresql (un maître et un esclave) synchronisé via une réplication hot stand by par wal shipping. - postgresql v9.1 installé via les packages backports Debian Squeeze
- un pgpool a été configuré en front par lequel toutes les lectures passent qui est configuré en failover (le poids du slave est 1000 > à celui du master qui ne sert donc que si le slave n'est plus dispo) et en connection pooler (connection_life_time = 300 afin d'éviter l'overhead de la reconnection) - pgpool 3.0.5 compilé à partir des sources


Reprenons le cas suivant:
- depuis un client j'ouvre une première connexion en passant par pgpool que je laisse ouverte : je vois bien un process au niveau de pgpool et un au niveau de mon serveur slave - OK
- je referme cette connexion : la connexion sur pgpool mais la connexion sur mon serveur slave est toujours présente (cf. connection_life_time) - OK
- depuis le même client sur la même base et avec le même user j'ouvre à nouveau une connexion juste pour faire un "select 1" via pgpool : je vois qu'un nouveau process sur mon serveur slave est créé et donc j'ai 2 connexions - NOK

pourquoi lors de cette dernière connexion, il ne réutilise pas la session idle qui reste ouverte ?

si vous avez des pistes je suis preneur.
merci d'avance !
/Erwan

Hors ligne

#2 14/06/2012 17:16:49

rjuju
Administrateur

Re : PgPool-II - intérrogation sur le connection pooler

Bonjour,
je ne connais pas plus que ça pgPool mais je pense que c'est pour minimiser le nombre de reconnexions. En effet, pg Pool définit un nombre maximum de réutilisations d'une connexion existante, et donc dispatch les premières connexions sur celle existantes.

Hors ligne

#3 14/06/2012 17:31:02

ebs
Membre

Re : PgPool-II - intérrogation sur le connection pooler

Bonjour rjuju et merci pour cette réponse.

oui oui c'est effectivement pour minimiser les nombres de reconnexions avec la base que je souhaitais utiliser pgpool mais après plusieurs tests j'ai plus l'impression qu'il ne réutilise jamais une connexion déjà ouverte... et c'est ça qui me perturbe car du coup je minime jamais le nombre de reconnexions sad

si vous avez d'autres pistes je suis preneur (ou peut être ai je mal saisi la subtilité de certains paramètres)

Hors ligne

#4 14/06/2012 17:41:35

gleu
Administrateur

Re : PgPool-II - intérrogation sur le connection pooler

Il n'a pas vraiment de raison de réutiliser la même session. Pour faire un test qui ait du sens, il faut lancer un grand nombre de clients, avec beaucoup de sessions. Et vous verrez ainsi le pooler de connexion fonctionner.


Guillaume.

Hors ligne

#5 14/06/2012 18:37:11

ebs
Membre

Re : PgPool-II - intérrogation sur le connection pooler

hum ca signifie que pour utiliser le pool il faut qu'au préalable il ouvre le max de connexions que mon pgpool peut gérer ?

donc j'imagine dans ce cas que parfois il est plus intéressant de baisser le ce nombre afin de profiter un maximum du pool ?


merci en tout cas pour ces précisions ! smile

Hors ligne

#6 14/06/2012 19:54:39

rjuju
Administrateur

Re : PgPool-II - intérrogation sur le connection pooler

Il faut effectivement dépasser ce nombre pour que le pool fonctionne réellement.
Le nombre de connexions parallèles optimal est délicat à trouver. Il dépend de l'architecture de votre serveur, de votre application...
Une base de départ en général est de ((2* nombre de coeurs) + nombre de disques).


Vous pouvez également regarder du coté de pgpoolAdmin qui offre une interface web pour gérer pgPool et afficher facilement de nombreuses informations.

Dernière modification par rjuju (14/06/2012 20:02:05)

Hors ligne

#7 14/06/2012 23:30:15

gleu
Administrateur

Re : PgPool-II - intérrogation sur le connection pooler

Non, il n'est pas nécessaire d'ouvrir le maximum de connexions, mais tout simplement, il faut qu'il ait assez de charge pour que le mécanisme de pooling se mette en route.


Guillaume.

Hors ligne

Pied de page des forums