Tout d'abord, veuillez lire notre question canonique sur la planification des capacités.
Deuxièmement, vous regardez ce mal.
La quantité de mémoire (ou toute autre ressource) dont vous disposez ne dicte pas le nombre de connexions que vous définissez, le nombre de connexions dont vous avez besoin dicte la puissance d'un serveur que vous devez acheter.
Les besoins en ressources par connexion sont donnés dans le manuel de manière très détaillée, ainsi que discutés sur le Wiki auquel vous avez lié. Déterminez ce dont votre environnement a besoin (ou faites une supposition éclairée) et assurez-vous que le matériel sur lequel vous allez fonctionner peut gérer ce que vous allez lui lancer.
Plus précisément en ce qui concerne les limites de connexion et la taille du pool, vous devez disposer de "suffisamment" de connexions pour répondre aux exigences de votre application - soit sur un seul serveur, soit via un pool/videur.
"Assez" est un nombre relatif :une application qui établit (et réutilise continuellement) une connexion ne nécessite qu'une seule connexion. Une application qui établit une connexion pour chaque utilisateur final qui se connecte nécessite autant de connexions à la base de données qu'elle a d'utilisateurs.
Les valeurs par défaut pour Postgres et pgbouncer
sont sensibles en tant que valeurs par défaut :
-
100 connexions à la base de données, c'est beaucoup pour la personne typique qui lance Postgres dans un environnement.
Les développeurs n'auront probablement pas besoin de plus de 10. N'importe qui d'autre en saura assez pour augmenter le nombre. -
20 connexions sur
pgbouncer
par pool de bases de données signifie que vous pouvez obtenir 4 pools pointant vers un serveur et ne pas dépasser la limite de connexion Postgres par défaut.
Il est possible d'avoir plusieurs ressources mises en commun danspgbouncer
pointant vers une base de données principale et vous voulez toujours des connexions disponibles sur vos serveurs principaux.
Si les valeurs par défaut ne conviennent pas à votre environnement, vous devez les modifier.
N'oubliez pas que les connexions groupées ne signifient pas "toujours lier toutes les connexions de base de données disponibles".
Le point de pgbouncer
comme vous l'avez noté est de réutiliser Connexions. Le gain d'efficacité ici ne nécessite pas que vous bloquiez toutes les connexions disponibles, simplement que vous ne vous déconnectiez pas, ne vous reconnectiez pas, ne renégociez pas SSL, ne vous authentifiez pas à nouveau auprès de la base de données et ne réexécutez pas vos requêtes de configuration de connexion à chaque fois.