Auf dieser Seite wird beschrieben, was Managed Connection Pooling ist und wie Sie es mit Ihren Cloud SQL-Instanzen verwenden.
Mit Managed Connection Pooling können Sie Ihre Arbeitslasten skalieren, indem Sie die Ressourcennutzung und die Verbindungs-Latenz für Ihre Cloud SQL for PostgreSQL-Instanzen mithilfe von Pooling optimieren. Beim verwalteten Verbindungspooling werden Serververbindungen nach Möglichkeit dynamisch eingehenden Anfragen zugewiesen. Dies führt zu einer erheblichen Leistungssteigerung, insbesondere bei skalierten Verbindungen, da plötzliche Verbindungsspitzen abgefangen und vorhandene Datenbankverbindungen wiederverwendet werden. Anstatt eine Verbindung zu einer bestimmten Datenbank herzustellen, wird bei Managed Connection Pooling eine Verbindung zu einem Cluster von Poolern hergestellt, was zu kürzeren Verbindungszeiten und einer besseren Skalierbarkeit für Ihre Arbeitslasten führt. Die Anzahl der verwendeten Pooler richtet sich nach der Anzahl der vCPU-Kerne Ihrer Instanz.
Sie können Managed Connection Pooling für alle transaktionalen Arbeitslasten verwenden. Die Vorteile in Bezug auf Durchsatz und Latenz sind jedoch am größten bei Anwendungen mit kurzlebigen Verbindungen oder Anwendungen, die zu einem Anstieg der Verbindungen führen.
Bei Verbindungen mit langer Lebensdauer kann die Verbindungsleistung mit Managed Connection Pooling etwas geringer sein als bei einer direkten Verbindung. In diesem Fall bietet Managed Connection Pooling eine Verbindungsskalierung, wenn die Anzahl der Verbindungen sehr hoch ist. Bei Anwendungen, die in der Regel langlebige Verbindungen herstellen, können Sie stattdessen direkte Verbindungen zu Ihrer Instanz verwenden.
Weitere Informationen zum Aktivieren des verwalteten Verbindungspoolings finden Sie unter Verwaltetes Verbindungspooling konfigurieren.
Voraussetzungen
Damit Sie Managed Connection Pooling verwenden können, muss Ihre Instanz die folgenden Anforderungen erfüllen:
- Ihre Instanz muss eine Cloud SQL Enterprise Plus-Instanz sein.
- Sie müssen über eine direkte Verbindung oder nur über den Cloud SQL Auth-Proxy mit Ihrer Instanz verbunden sein.
- Sie müssen mit einem gültigen Nutzernamen und Passwort mit Ihrer Instanz verbunden sein. IAM- und IAM-Gruppennutzer werden bei der Verwendung von Managed Connection Pooling nicht unterstützt.
- Ihre Instanz muss entweder für den Zugriff auf private Dienste eingerichtet sein, eine öffentliche IP-Adresse verwenden oder eine neue Instanz mit aktiviertem Private Service Connect sein.
- Ihre Instanz muss die neue Cloud SQL-Netzwerkarchitektur verwenden.
- Für das verwaltete Verbindungs-Pooling ist eine Mindestwartungsversionsnummer von
POSTGRES_$version.R20250302.00_04
erforderlich. Weitere Informationen finden Sie unter Self-Service-Wartung.
Von Managed Connection Pooling für Cloud SQL-Instanzen verwendete Ports
Wenn Sie Managed Connection Pooling aktivieren, ändern sich die Ports, die von Cloud SQL-Instanzen zum Bereitstellen von Datenbanktraffic verwendet werden. Die von Managed Connection Pooling verwendeten Ports sind:
- TCP-Port 5432: Wird für direkte Verbindungen durch den Postgres-Datenbankserver verwendet. Dies ist die Standardportnummer, die verwendet wird, wenn eine direkte Verbindung mit dem psql-Client hergestellt wird.
- TCP-Port 6432: Wird für direkte Verbindungen durch den PgBouncer-Server verwendet. Wenn Sie über diesen Port eine Verbindung herstellen möchten, geben Sie
psql -p 6432
an, wenn Sie direkt über den psql-Client eine Verbindung herstellen. - TCP-Port 3307: Wird nur für Verbindungen des Cloud SQL Auth-Proxy durch einen PgBouncer-Server verwendet. Wenn Sie den Cloud SQL Auth-Proxy verwenden, um eine Verbindung zu Pgbouncer herzustellen, wird diese Portnummer mit dem Cloud SQL Auth-Proxy-Client konfiguriert und kann nicht geändert werden.
Verfügbare Konfigurationsoptionen
Das verwaltete Verbindungspooling bietet die folgenden Pooling-Optionen, die Sie mit dem Parameterpool_mode
festlegen können:
transaction
(Standard): Verbindungen werden auf Transaktionsebene gepoolt.session
: Poolt Verbindungen auf Sitzungsebene.
Sie können Managed Connection Pooling auch anpassen. Verwenden Sie dazu die folgenden Konfigurationsparameter:
max_pool_size
: die maximale Größe des Verbindungspools. Der Standardwert ist 50 Verbindungen.min_pool_size
: Die Schwellengröße des Verbindungspools. Wenn die Anzahl der Serververbindungen kleiner alsmin_pool_size
ist, fügen Sie dem Pool weitere Serververbindungen hinzu. Der Standardwert ist 0 Verbindungen.max_client_connections
: Die maximale Anzahl an Verbindungen, die für Ihre Instanz zulässig sind. Der Standardwert ist 5.000 Verbindungen.client_connection_idle_timeout
: Die Zeit, die eine Clientverbindung inaktiv bleibt, bevor eine Zeitüberschreitung auftritt. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 0 Sekunden.server_connection_idle_timeout
: die Zeit, die eine Serververbindung inaktiv bleibt, bevor sie eine Zeitüberschreitung verursacht. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 600 Sekunden.query_wait_timeout
: Die Zeit, die eine Abfrage wartet, bis sie das Zeitlimit überschreitet. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 120 Sekunden.max_prepared_statements
: Die maximale Anzahl von benannten vorbereiteten Anweisungsbefehlen auf Protokollebene, die im Transaktionspooling-Modus unterstützt werden. Der Standardwert ist 0.ignore_startup_parameters
: Die Parameter, die ignoriert werden sollen und die in den Startpaketen von Managed Connection Pooling standardmäßig nicht erfasst werden.server_lifetime
: Die maximale Zeit, die eine Serververbindung ungenutzt bleibt, bevor sie vom Managed Connection Pooling geschlossen wird. Der Standardwert beträgt 3.600 Sekunden.
Beschränkungen
Beim Verwenden von Managed Connection Pooling mit Ihren Cloud SQL Enterprise Plus-Instanzen gelten die folgenden Einschränkungen:
- Wenn Sie das verwaltete Verbindungspooling für eine vorhandene Instanz aktivieren, wird die Datenbank neu gestartet.
- Wenn Sie die Cloud SQL API verwenden, um Managed Connection Pooling zu aktivieren, zu deaktivieren oder zu konfigurieren, darf die
instance.update
API keine anderen Aktualisierungen der Instanzkonfiguration enthalten. - Managed Connection Pooling kann nur mit Cloud SQL Auth-Proxy-Version 2.15.2 und höher verwendet werden.
- Wenn Sie den Cloud SQL-Go-Connector verwenden, empfehlen wir mindestens die Go-Version
1.24
. Wenn Sie Go-Version 1.23 oder früher verwenden, kann es bei der Verwendung von Managed Connection Pooling zu Leistungseinschränkungen kommen. Wenn Sie Managed Connection Pooling im
transaction
-Pooling-Modus verwenden, werden die folgenden SQL-Funktionen nicht unterstützt:SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
Temporäre TabellenLOAD
- Sperren auf Sitzungsebene
Wenn Sie Cloud SQL for PostgreSQL Version 17 verwenden, wird die Option
sslnegotiation=direct
nicht unterstützt.