Un trop grand nombre de connexions inactives peut-il affecter les performances de PostgreSQL 9.2?

8

Certaines requêtes sur mon serveur de base de données semblent prendre beaucoup de temps à répondre, et je pense que l'utilisation du processeur est élevée. Lors de l'exécution ps aux, je vois ~ 250 connexions "inactives" (que je pense être trop nombreuses). Je n'ai pas commencé à faire un diagnostic complet, mais je voulais savoir si c'était un bon endroit pour commencer à chercher.

J'utilise également PgBouncer avec la mise en commun au niveau des transactions. Je soupçonne que je peux facilement réduire le nombre de idleconnexions en ajustant la taille du pool. Cependant, je ne veux pas commencer à faire trop de changements à moins qu'il n'y ait une bonne raison de le faire.

De nombreuses idleconnexions dans PostgreSQL 9.2 peuvent-elles affecter les performances?

Merci beaucoup!

Juan Carlos Coto
la source
que signifie «trop de connexions inactives»? douzaines? des centaines?
jap1968
Question modifiée. Merci de l'avoir signalé. Juste pour être clair, le dernier décompte était ~ 250
Juan Carlos Coto
Peut être? Je sais que le DBA Oracle ici a demandé aux gens de définir leurs outils de développement pour utiliser une seule session pour toutes les fenêtres (au lieu d'une nouvelle session pour chaque fenêtre) lorsque la base de données de développement a commencé à fonctionner très lentement. Le nombre exact qui compte comme «trop» dépendra probablement des ressources disponibles pour votre base de données.
FrustratedWithFormsDesigner

Réponses:

3

Je doute sérieusement que les connexions inactives soient votre problème. PostgreSQL est très capable de gérer des sessions inactives car elles ne prennent presque aucune ressource. Les séances actives, d'autre part, sont beaucoup plus susceptibles d'être la cause de la lenteur.

Voir https://wiki.postgresql.org/wiki/Number_Of_Database_Connections pour une référence sur le nombre de connexions à la base de données.

Max Vernon
la source
Les sessions inactives avec des transactions non engagées sont souvent des coupables coquines!
Philᵀᴹ
Je suis d'accord, Phil, bien que cela ne concerne pas vraiment PostgreSQL - c'est plus sur la façon dont la fin du client est écrite (sauf si je manque quelque chose).
Max Vernon
Veuillez consulter une question connexe à ce sujet . Cela aiderait vraiment si vous vous y impliquiez. Merci!
Juan Carlos Coto
En fait, les connexions inactives ont beaucoup de surcharge (mémoire) et elles doivent être évitées (je pense qu'il alloue environ 10 Mo par connexion, dans votre cas, vous perdriez au moins 2,5 Go de mémoire)
Kedare
1
@MaxVernon - dans mon serveur postgresql 9.5 en cours d'exécution, j'ai 25 processus inactifs, pour la colonne RES, ea. le processus est en moyenne d'environ 12 Mo (plage: 4,5 Mo - 584 Mo, je soupçonne que les plus gros ont des émissions non engagées).
cerd