Verwaltetes Verbindungs-Pooling – Übersicht

Mit verwaltetem Verbindungs-Pooling können Sie Ihre Arbeitslasten skalieren, indem Sie die Ressourcennutzung und die Verbindungs-Latenz für Ihre Cloud SQL-Instanzen optimieren. Beim verwalteten Verbindungs-Pooling werden Serververbindungen nach Möglichkeit dynamisch eingehenden Anfragen zugewiesen. Diese dynamische Zuweisung führt zu Leistungsverbesserungen, insbesondere bei skalierten Verbindungen, da plötzliche Verbindungsspitzen abgefangen und vorhandene Datenbankverbindungen wiederverwendet werden.

Beim verwalteten Verbindungs-Pooling wird eine Verbindung zu einem Cluster von Poolern anstelle einer bestimmten Datenbank hergestellt. Der Pooler verwaltet dann die eingehenden Verbindungen zur Datenbank. Das führt zu kürzeren Verbindungszeiten und Skalierbarkeit für Ihre Arbeitslasten. Jeder Pool ist einer eindeutigen Datenbank und einem eindeutigen Nutzer zugeordnet. Sobald sich ein Client authentifiziert hat, wird eine inaktive Serververbindung im Pool wiederverwendet, 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 basiert auf der Anzahl der vCPU-Kerne Ihrer Instanz.

Anwendungsfälle und Überlegungen

Beachten Sie bei der Verwendung des verwalteten Verbindungs-Poolings Folgendes:

  • Sie können verwaltetes Verbindungs-Pooling für jede transaktionale Arbeitslast verwenden. Es bietet jedoch den größten Durchsatz- und Latenzvorteil für Anwendungen mit kurzlebigen Verbindungen oder für Anwendungen, bei denen es zu einem plötzlichen Anstieg der Verbindungen kommt.
  • 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, sollten Sie jedoch möglicherweise kein Verbindungs-Pooling verwenden.
  • Sie können Identity and Access Management verwenden, um Verbindungen zu Ihrer Instanz zu sichern, je nachdem, welcher Port vom verwalteten Verbindungspooling verwendet wird. 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 Verbindungs-Poolings finden Sie unter Verwaltetes Verbindungs-Pooling konfigurieren.

Voraussetzungen

Damit Sie das verwaltete Verbindungs-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 eine Verbindung zu Ihrer Instanz über eine direkte Verbindung oder den Cloud SQL Auth-Proxy herstellen.
  • 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.

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 zusammengefasst. Verbindungen werden nach Abschluss jeder Transaktion an den Pool zurückgegeben. Cloud SQL empfiehlt die Verwendung des transaction-Poolingmodus für kurzlebige Verbindungen.
  • session: Verbindungen werden auf Sitzungsebene zusammengefasst. 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, kehrt der Server zum Verbindungspool zurück.

Erweiterte Konfigurationsoptionen

Sie können das verwaltete Verbindungs-Pooling anpassen, indem Sie die folgenden Konfigurationsoptionen verwenden:

Konfigurationsname Beschreibung
max_pool_size Die maximale Anzahl von Serververbindungen, die für ein Datenbank- und Nutzerpaar in jedem Verbindungspool 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 können Sie plötzliche Anstiege der Datenbanklast nach Inaktivitätsphasen besser bewältigen und dafür sorgen, 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 das verwaltete Verbindungspooling verwenden. Der Standardwert ist 5.000 Verbindungen.
max_prepared_statements Die maximale Anzahl von benannten vorbereiteten Anweisungen auf Protokollebene, die im transaction-Pooling-Modus 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 auf eine Serververbindung in einem Pool wartet, bevor das Zeitlimit überschritten wird.

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 Startpaketen für das verwaltete Verbindungs-Pooling erfasst werden.
server_lifetime Die maximale Zeit, die eine Serververbindung ungenutzt bleibt, bevor sie durch das verwaltete Verbindungs-Pooling 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 verwaltetes Verbindungs-Pooling für eine vorhandene Instanz aktivieren, wird die Datenbank neu gestartet.
  • Wenn Sie die Cloud SQL API verwenden, um das verwaltete Verbindungs-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 des verwalteten Verbindungspools zu Leistungseinschränkungen kommen.
  • Wenn Sie verwaltetes Verbindungs-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
    • Advisory-Sperren auf Sitzungsebene
  • Wenn Sie die asyncpg-Datenbankschnittstellenbibliothek für den Pooler für verwaltetes Verbindungs-Pooling auf den Ports 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 verwaltetes Verbindungs-Pooling zu aktivieren.

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

  • Das Tracking von Client-IP-Adressen wird beim verwalteten Verbindungs-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.

Von verwaltetem Verbindungs-Pooling 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 Server für verwaltete Verbindungspools 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 bei der Verwendung dieses Ports eine beliebige IAM-Authentifizierungsoption verwenden.

  • TCP-Port 3307: Wird nur für Verbindungen über den Cloud SQL Auth-Proxy von einem 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.

Von verwaltetem Verbindungs-Pooling verwendete Serververbindungen

Die Datenbankkonfiguration max_connections begrenzt die maximale Anzahl von Serververbindungen, die ein Pooler im verwalteten Verbindungs-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 das verwaltete Verbindungs-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 Flags max_connections für Ihre Instanz finden Sie unter Datenbank-Flags konfigurieren.

Nächste Schritte