Verwaltetes Verbindungs-Pooling – Übersicht

Auf dieser Seite wird beschrieben, was Managed Connection Pooling ist und wie Sie damit die Verwaltung von Datenbankverbindungen für Ihre Cloud SQL-Instanzen mithilfe von Pooling optimieren können.

Mit Managed Connection Pooling können Sie Ihre Arbeitslasten skalieren, indem Sie die Ressourcennutzung und die Verbindungs-Latenz für Ihre Cloud SQL-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.

Jeder Pool ist einer eindeutigen Datenbank und einem eindeutigen Nutzer zugeordnet. Sobald ein Client authentifiziert wurde, versucht der Pool, eine der inaktiven Serververbindungen im Pool wiederzuverwenden, um die Datenbank mit dem Server zu verbinden. Wenn keine Serververbindung verfügbar ist, wird eine neue Serververbindung im Pool erstellt, um die Datenbank zu verbinden. 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 für 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 das verwaltete Verbindungs-Pooling eine Verbindungsskalierung, wenn die Anzahl der Verbindungen sehr hoch ist. Bei Anwendungen, die in der Regel langlebige Verbindungen herstellen, sollten Sie jedoch möglicherweise kein Connection Pooling verwenden.

Sie können Identity and Access Management verwenden, um Verbindungen zu sichern, je nach Port. Weitere Informationen zur Funktionsweise von IAM in Cloud SQL und zu den Einschränkungen finden Sie unter IAM-Authentifizierung.

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 nur über eine direkte Verbindung oder den Cloud SQL Auth-Proxy mit Ihrer Instanz verbunden sein.
  • Ihre Instanz muss 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.R20250727.00_14 erforderlich. Weitere Informationen zur Self-Service-Wartung finden Sie unter Self-Service-Wartung durchführen.

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. Sie können Identity and Access Management verwenden, um Verbindungen je nach Port zu sichern.

Die von Managed Connection Pooling verwendeten Ports und die verfügbaren IAM-Optionen sind wie folgt:

  • TCP-Port 5432: Wird für direkte Verbindungen durch den Postgres-Datenbankserver verwendet. Dies ist die Standardportnummer für direkte Verbindungen mit dem psql-Client.

  • TCP-Port 6432: Wird für direkte Verbindungen durch den Managed Connection Pooling-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.

    Sie können jede IAM-Authentifizierungsoption verwenden, wenn Sie diesen Port verwenden.

  • TCP-Port 3307: Wird nur für Cloud SQL Auth-Proxyverbindungen durch einen Managed Connection Pooling-Server verwendet. Wenn Sie den Cloud SQL Auth-Proxy verwenden, um eine Verbindung zu Managed Connection Pooling herzustellen, wird diese Portnummer mit dem Cloud SQL Auth-Proxy-Client konfiguriert und kann nicht geändert werden.

    Sie können mit diesem Port eine beliebige IAM-Authentifizierungsoption oder die automatische IAM-Datenbankauthentifizierung verwenden.

Pooling-Optionen

Mit dem verwalteten Verbindungs-Pooling können Sie mithilfe des Parameters pool_mode verwalten, wie Verbindungen gepoolt werden. Sie haben die folgenden Pooling-Optionen:

  • transaction (Standard): Verbindungen werden auf Transaktionsebene gepoolt. Verbindungen werden nach Abschluss jeder Transaktion an den Pool zurückgegeben. Cloud SQL empfiehlt die Verwendung des transaction-Pooling-Modus für kurzlebige Verbindungen.
  • session: Poolt Verbindungen auf Sitzungsebene. Für jede Sitzung wird eine dedizierte Serververbindung verwendet, die einen Sitzungsstatus beibehält. Dadurch wird die Pooling-Effizienz verringert. Wenn ein Client die Verbindung trennt, wird der Server an den Verbindungspool zurückgegeben.

Erweiterte Konfigurationsoptionen

Sie können Managed Connection Pooling anpassen, indem Sie die folgenden Konfigurationsoptionen verwenden:

Konfigurationsname Beschreibung
max_pool_size Die maximale Anzahl von Serververbindungen, die in jedem Verbindungspool für ein Datenbank- und Nutzerpaar zulässig sind. Der Standardwert ist 50 Verbindungen.
min_pool_size Die Mindestanzahl von Serververbindungen, die jederzeit in jedem Verbindungspool verfügbar sind.

Wenn die Anzahl der Serververbindungen kleiner als min_pool_size ist, werden mit dieser Einstellung weitere Serververbindungen zum Pool hinzugefügt. So lassen sich plötzliche Anstiege der Datenbanklast nach Inaktivitätsphasen besser bewältigen und es wird dafür gesorgt, dass Verbindungen verfügbar und einsatzbereit sind.

Der Standardwert ist 0 Verbindungen.
max_client_connections Die maximale Anzahl von Verbindungen, die für Ihre Instanz zulässig sind, wenn Sie den verwalteten Verbindungspool verwenden. Der Standardwert ist 5.000 Verbindungen.
max_prepared_statements Die maximale Anzahl von benannten vorbereiteten Anweisungen auf Protokollebene, die im Pooling-Modus transaction unterstützt werden.

Wenn Sie diese Option auf 0 setzen, wird die Unterstützung für vorbereitete Anweisungen deaktiviert. Für eine optimale Leistung sollte dieser Wert die Anzahl der häufig verwendeten vorbereiteten Anweisungen in Ihrer Datenbank überschreiten. Eine hohe Anzahl von vorbereiteten Anweisungen im verwalteten Verbindungspooling kann zu einer erhöhten Speichernutzung führen.

Der Standardwert ist 0 Anweisungen.
client_connection_idle_timeout Die Zeit, die eine Clientverbindung inaktiv bleibt, bevor sie das Zeitlimit überschreitet. 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 unterbrochen wird. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 600 Sekunden.
query_wait_timeout Die Zeit, die eine Abfrage in einem Pool auf eine Serververbindung wartet, bevor eine Zeitüberschreitung auftritt.

Wenn Sie diese Option auf 0 setzen, wird sie deaktiviert. Dadurch ist eine unbegrenzte Client-Warteschlange möglich. Wenn Sie diese Option aktivieren, wird verhindert, dass Verbindungen durch nicht reagierende Server aufgehalten werden.

Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 120 Sekunden.
ignore_startup_parameters Die Parameter, die ignoriert werden sollen und die standardmäßig nicht in den Startpaketen für Managed Connection Pooling erfasst werden.
server_lifetime Die maximale Zeit, die eine Serververbindung ungenutzt bleibt, bevor sie vom verwalteten Verbindungspool geschlossen wird. Wenn der Wert auf 0 Sekunden festgelegt ist, wird die Verbindung nach der Verwendung sofort geschlossen.

Der Standardwert beträgt 3.600 Sekunden.

Beschränkungen

Wenn Sie Managed Connection Pooling mit Ihren Cloud SQL Enterprise Plus-Instanzen verwenden, sollten Sie die folgenden Einschränkungen beachten:

  • 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 Tabellen
    • LOAD
    • Sperren auf Sitzungsebene
  • Wenn Sie die asyncpg-Datenbankschnittstellenbibliothek für den Pooler für Managed Connection Pooling auf Port 3307 und 6432 verwenden, müssen Sie max_prepared_statements auf einen Wert größer als 0 aktualisieren, um die Unterstützung für vorbereitete Anweisungen im Pooler für Managed Connection Pooling zu aktivieren.

  • Wenn Sie Cloud SQL for PostgreSQL Version 17 verwenden, wird die Option sslnegotiation=direct nicht unterstützt.

  • Das Tracking von Client-IPs wird bei Managed Connection Pooling nicht unterstützt. Wenn Sie in Suchanfragen-Insights die Option Client-IP-Adressen speichern aktivieren, werden Client-IP-Adressen als local anstelle der IP-Adresse selbst angezeigt.

  • Wenn für Ihre Instanz der Cloud SQL Auth-Proxy verwendet wird und das verwaltete Verbindungs-Pooling aktiviert ist, wird die manuelle IAM-Datenbankauthentifizierung nicht unterstützt. Sie können nur die automatische IAM-Authentifizierung verwenden.

Von verwaltetem Verbindungs-Pooling verwendete Serververbindungen

Die Datenbankkonfiguration max_connections begrenzt die maximale Anzahl von Serververbindungen, die ein Pooler in Managed Connection Pooling verwenden kann. Cloud SQL empfiehlt, diesen Wert basierend auf den Anforderungen der Arbeitslast Ihrer Instanz und der Größe der Datenbankinstanz anzupassen. Bei Spitzenlast kann die Anzahl der Verbindungen für die Authentifizierung sehr hoch werden.

Wenn Sie den Standardwert max_pool_size von 50 Pools für Ihre Instanz verwenden, empfehlen wir, mindestens 15 Serververbindungen pro CPU für Managed Connection Pooling zu reservieren, wenn Sie das Flag max_connections für Ihre Datenbank festlegen. Weitere Informationen zum Flag max_connections finden Sie unter Maximale Anzahl gleichzeitiger Verbindungen. Informationen zum Ändern des max_connections-Flags für Ihre Instanz finden Sie unter Datenbank-Flags konfigurieren.

Nächste Schritte