Bitte lesen Sie zunächst unsere kanonische Frage zur Kapazitätsplanung.
Zweitens sehen Sie das falsch.
Die Menge an Arbeitsspeicher (oder einer anderen Ressource), die Sie haben, diktiert nicht die Anzahl der Verbindungen, die Sie festlegen, die Anzahl der Verbindungen, die Sie benötigen bestimmt, wie kräftig ein Server ist, den Sie kaufen müssen.
Die Ressourcenanforderungen pro Verbindung sind im Handbuch sehr detailliert angegeben und werden in dem von Ihnen verlinkten Wiki besprochen. Finden Sie heraus, was Ihre Umgebung benötigt (oder machen Sie eine fundierte Vermutung) und stellen Sie sicher, dass die Hardware, auf der Sie laufen werden, mit dem umgehen kann, was Sie darauf werfen werden.
Insbesondere in Bezug auf Verbindungsbeschränkungen und Poolgröße sollten Sie "genügend" Verbindungen haben, um die Anforderungen Ihrer Anwendung zu erfüllen - entweder auf einem einzelnen Server oder über einen Pool/Bouncer.
„Genug“ ist eine relative Zahl:Eine Anwendung, die eine Verbindung herstellt (und ständig wiederverwendet), benötigt nur eine Verbindung. Eine Anwendung, die eine Verbindung für jeden Endbenutzer herstellt, der sich anmeldet, benötigt so viele DB-Verbindungen, wie sie Benutzer hat.
Die Standardwerte für Postgres und pgbouncer
sind als Standardwerte sinnvoll :
-
100 Datenbankverbindungen sind viel für die typische Person, die Postgres in eine Umgebung wirft.
Entwickler werden wahrscheinlich nicht mehr als 10 benötigen. Jeder andere wird genug wissen, um die Zahl zu erhöhen. -
20 Verbindungen von
pgbouncer
pro DB-Pool bedeutet, dass Sie 4 Pools erhalten können, die auf einen Server zeigen, ohne das standardmäßige Postgres-Verbindungslimit zu überschreiten.
Es ist möglich, mehrere gepoolte Ressourcen inpgbouncer
zu haben auf eine Back-End-Datenbank zeigen, und Sie möchten immer einige verfügbare Verbindungen auf Ihren Back-End-Servern.
Wenn die Standards nicht für Ihre Umgebung geeignet sind, sollten Sie sie ändern.
Denken Sie daran, dass gepoolte Verbindungen nicht bedeuten, „immer alle verfügbaren Datenbankverbindungen zu binden“.
Der Punkt von pgbouncer
wie Sie angemerkt haben, ist die Wiederverwendung Verbindungen. Der Effizienzgewinn hier erfordert nicht, dass Sie jede verfügbare Verbindung binden, sondern lediglich, dass Sie nicht jedes Mal trennen, neu verbinden, SSL neu aushandeln, sich erneut bei der Datenbank authentifizieren und Ihre Verbindungsaufbauabfragen jedes Mal neu ausführen.