Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
RDSÜberlegungen zur Proxyverbindung
Konfigurieren der Verbindungseinstellungen
Um das Verbindungspooling des RDS Proxys anzupassen, können Sie die folgenden Einstellungen ändern:
IdleClientTimeout
Sie können angeben, wie lange eine Client-Verbindung inaktiv sein kann, bevor der Proxy sie schließt. Der Standardwert ist 1.800 Sekunden (30 Minuten).
Eine Client-Verbindung gilt als inaktiv, wenn die Anwendung innerhalb der angegebenen Zeit nach Abschluss der vorherigen Anforderung keine neue Anforderung absendet. Die zugrunde liegende Datenbankverbindung bleibt offen und wird an den Verbindungspool zurückgegeben. Somit ist sie für neue Clientverbindungen verfügbar. Wenn Sie möchten, dass der Proxy proaktiv veraltete Verbindungen entfernt und so das Timeout für inaktive Client-Verbindungen verringert. Wenn Ihr Workload häufig Verbindungen mit dem Proxy herstellt, erhöhen Sie das Timeout für inaktive Client-Verbindungen, um die Kosten für den Verbindungsaufbau zu sparen.
Diese Einstellung wird durch das Feld Timeout für die Verbindung bei inaktivem Client in der RDS Konsole und durch die IdleClientTimeout
Einstellung in AWS CLI und der dargestellt. API Informationen dazu, wie Sie den Wert des Felds Timeout für die Verbindung bei inaktivem Client in der RDS Konsole ändern können, finden Sie unter. AWS Management Console Informationen zum Ändern des Werts der IdleClientTimeout
Einstellung finden Sie im CLI Befehl modify-db-proxyoder in der API Operation M. odifyDBProxy
MaxConnectionsPercent
Sie können die Anzahl der Verbindungen einschränken, die ein RDS Proxy mit der Zieldatenbank herstellen kann. Sie geben das Limit als Prozentsatz der maximal für Ihre Datenbank verfügbaren Verbindungen an. Diese Einstellung wird durch das Feld Maximale Anzahl an Verbindungen für den Verbindungspool in der RDS Konsole und durch die MaxConnectionsPercent
Einstellung in AWS CLI und der dargestelltAPI.
Der MaxConnectionsPercent
Wert wird als Prozentsatz der max_connections
Einstellung für den der RDSDB-Instance ausgedrückt, der von der Zielgruppe verwendet wird. Der Proxy erstellt nicht alle diese Verbindungen im Voraus. Diese Einstellung ermöglicht es dem Proxy, diese Verbindungen so einzurichten, wie es die Arbeitslast benötigt.
Beispiel: Für ein registriertes Datenbankziel, das auf 1000 und auf 95 MaxConnectionsPercent
gesetzt ist, legt RDS Proxy 950 Verbindungen als Obergrenze für gleichzeitige Verbindungen zu diesem Datenbankziel fest. max_connections
Ein häufiger Nebeneffekt, der auftritt, wenn Ihre Workload die maximale Anzahl zulässiger Datenbankverbindungen erreicht, ist ein Anstieg der allgemeinen Abfragelatenz in Verbindung mit einer Erhöhung der Metrik DatabaseConnectionsBorrowLatency
. Sie können die aktuell verwendeten Datenbankverbindungen und die Gesamtzahl der zulässigen Datenbankverbindungen überwachen, indem Sie die Metriken DatabaseConnections
und MaxDatabaseConnectionsAllowed
vergleichen.
Beachten Sie für das Festlegen dieses Parameters die folgenden bewährten Methoden:
Sorgen Sie für ausreichend Verbindungsspielraum für Änderungen des Workload-Musters. Es wird empfohlen, den Parameter mindestens 30 % über Ihrer zuletzt überwachten maximalen Nutzung einzustellen. Da RDS Proxy die Kontingente für Datenbankverbindungen auf mehrere Knoten umverteilt, können interne Kapazitätsänderungen mindestens 30% Spielraum für zusätzliche Verbindungen erfordern, um erhöhte Ausleihelatenzen zu vermeiden.
RDSDer Proxy reserviert eine bestimmte Anzahl von Verbindungen für die aktive Überwachung, um schnelles Failover, Datenverkehrs-Routing und interne Abläufe zu unterstützen. Die Metrik
MaxDatabaseConnectionsAllowed
umfasst diese reservierten Verbindungen nicht. Sie stellt die Anzahl der Verbindungen dar, die für den Workload verfügbar sind, und kann niedriger sein als der aus der EinstellungMaxConnectionsPercent
abgeleitete Wert.Empfohlene Mindestwerte für
MaxConnectionsPercent
db.t3.small: 30
db.t3.medium oder höher: 20
Informationen zum Ändern des Werts des Felds Maximale Anzahl an Verbindungen für den Verbindungspool in der RDS Konsole finden Sie unterAWS Management Console. Informationen zum Ändern des Werts der MaxConnectionsPercent
Einstellung finden Sie unter dem CLI Befehl modify-db-proxy-target-group oder der API Operation M. odifyDBProxy TargetGroup
Informationen zu Datenbankverbindungslimits finden Sie unter Maximale Anzahl von Datenbankverbindungen.
MaxIdleConnectionsPercent
Sie können die Anzahl der inaktiven Datenbankverbindungen steuern, die der RDS Proxy im Verbindungspool aufrechterhalten kann. Standardmäßig betrachtet der RDS Proxy eine Datenbankverbindung in seinem Pool als inaktiv, wenn die Verbindung fünf Minuten lang nicht aktiv war.
Der MaxIdleConnectionsPercent
Wert wird als Prozentsatz der max_connections
Einstellung für die RDS DB-Instance-Zielgruppe ausgedrückt. Der Standardwert ist 50 Prozent von MaxConnectionsPercent
und die Obergrenze ist der Wert MaxConnectionsPercent
. Wenn beispielsweise 80 istMaxConnectionsPercent
, dann MaxIdleConnectionsPercent
ist der Standardwert von 40. Wenn der Wert von MaxConnectionsPercent
nicht angegeben ist, MaxIdleConnectionsPercent
ist RDS für SQL Server der Wert 5 und für alle anderen Engines der Standardwert 50.
Bei einem hohen Wert lässt der Proxy einen hohen Prozentsatz an ungenutzten Datenbankverbindungen offen. Bei einem niedrigen Wert schließt der Proxy einen hohen Prozentsatz von inaktiven Datenbankverbindungen. Wenn Ihre Workloads unvorhersehbar sind, sollten Sie erwägen, einen hohen Wert für MaxIdleConnectionsPercent
festzulegen. Auf diese Weise kann der RDS Proxy einen Anstieg der Aktivität bewältigen, ohne viele neue Datenbankverbindungen öffnen zu müssen.
Diese Einstellung wird durch die MaxIdleConnectionsPercent
Einstellung von DBProxyTargetGroup
in der AWS CLI und der API dargestellt. Um zu erfahren, wie Sie den Wert der MaxIdleConnectionsPercent
Einstellung ändern können, schauen Sie sich den CLI Befehl modify-db-proxy-target-group oder die API Operation M odifyDBProxy TargetGroup an.
Informationen zu Datenbankverbindungslimits finden Sie unter Maximale Anzahl von Datenbankverbindungen.
ConnectionBorrowTimeout
Sie können wählen, wie lange RDS Proxy darauf wartet, dass eine Datenbankverbindung im Verbindungspool zur Verfügung steht, bevor ein Timeout-Fehler zurückgegeben wird. Standardmäßig sind 120 Sekunden festgelegt. Diese Einstellung greift, wenn die maximale Anzahl von Verbindungen erreicht ist und daher keine Verbindungen im Verbindungspool verfügbar sind. Dies gilt auch, wenn keine geeignete Datenbankinstanz zur Bearbeitung der Anfrage verfügbar ist, z. B. wenn ein Failover-Vorgang ausgeführt wird. Mit dieser Einstellung können Sie die beste Wartezeit für Ihre Anwendung festlegen, ohne das Abfragetimeout in Ihrem Anwendungscode zu ändern.
Diese Einstellung wird durch das Feld Timeout für Verbindungsausleihe in der RDS Konsole oder durch die ConnectionBorrowTimeout
Einstellung von DBProxyTargetGroup
in oder dargestellt. AWS CLI API Informationen zum Ändern des Werts des Felds Timeout für Verbindungsausleihe in der RDS Konsole finden Sie unter. AWS Management Console Informationen zum Ändern des Werts der ConnectionBorrowTimeout
Einstellung finden Sie unter dem CLI Befehl modify-db-proxy-target-group oder der Operation M. API odifyDBProxy TargetGroup
Client- und Datenbankverbindungen
Verbindungen von Ihrer Anwendung zum RDS Proxy werden als Client-Verbindungen bezeichnet. Verbindungen von einem Proxy zur Datenbank sind Datenbankverbindungen. Wenn Sie RDS Proxy verwenden, werden Client-Verbindungen am Proxy beendet, während Datenbankverbindungen innerhalb des RDS Proxys verwaltet werden.
Anwendungsseitiges Verbindungspooling kann den Vorteil bieten, dass der wiederkehrende Verbindungsaufbau zwischen Ihrer Anwendung und dem Proxy reduziert wird. RDS
Berücksichtigen Sie die folgenden Konfigurationsaspekte, bevor Sie einen anwendungsseitigen Verbindungspool implementieren:
-
Maximale Lebensdauer der Client-Verbindung: Der RDS Proxy erzwingt eine maximale Lebensdauer von Client-Verbindungen von 24 Stunden. Dieser Wert kann nicht konfiguriert werden. Konfigurieren Sie Ihren Pool mit einer maximalen Verbindungsdauer von weniger als 24 Stunden, um unerwartete Verbindungsabbrüche beim Client zu vermeiden.
-
Timeout im Leerlauf der Client-Verbindung: Der RDS Proxy erzwingt eine maximale Leerlaufzeit für Client-Verbindungen. Um unerwartete Verbindungsabbrüche zu vermeiden, konfigurieren Sie Ihren Pool mit einem Wert, der niedriger ist als die Einstellung für das Leerlauf-Timeout bei der Client-Verbindung für den RDS Proxy.
Die maximale Anzahl von Client-Verbindungen, die in Ihrem anwendungsseitigen Verbindungspool konfiguriert sind, muss nicht auf die Einstellung max_connections für Proxy beschränkt sein. RDS
Das Pooling von Client-Verbindungen führt zu einer längeren Lebensdauer der Client-Verbindung. Wenn es bei Ihren Verbindungen zum Pinning kommt, kann das Pooling von Client-Verbindungen die Effizienz des Multiplexings verringern. Clientverbindungen, die im anwendungsseitigen Verbindungspool angeheftet, aber inaktiv sind, behalten weiterhin eine Datenbankverbindung bei und verhindern, dass die Datenbankverbindung von anderen Clientverbindungen wiederverwendet wird. Überprüfen Sie Ihre Proxyprotokolle, um zu überprüfen, ob bei Ihren Verbindungen ein Pinning auftritt.
Anmerkung
RDSDer Proxy schließt Datenbankverbindungen irgendwann nach 24 Stunden, wenn sie nicht mehr verwendet werden. Der Proxy führt diese Aktion unabhängig vom Wert der Einstellung für maximale Leerlaufverbindungen aus.