it-swarm.com.de

AWS RDS-Verbindungslimits

Der RDS-Server bietet maximal 40 Verbindungen, wie in folgende Dokumentation
Ich verwende Magento 1.9 und an einigen Stellen erreiche ich die maximale Anzahl, wenn die Website außer Betrieb ist.
Haben Sie einen empfohlenen Weg, um dieses Problem zu lösen?

Wenn ich nach meinem Verständnis 2 Webserver mit einem RDS-Server verbunden habe, sollte ich 2 RDS-Verbindungen haben, nicht mehr.

54
Alaa Badran

Die Grenzvariable max_connections von AWS RDS basiert auf dem Instanztyp, sodass Sie Ihr RDS aktualisieren oder weitere Replikate erstellen können.

Die RDS-Typen mit max_connections-Limit:

  • t2.micro 66
  • t2.small 150
  • m3.medium 296
  • t2.medium 312
  • m3.large 609
  • t2.large 648
  • m4.large 648
  • m3.xlarge 1237
  • r3.large 1258
  • m4.xlarge 1320
  • m2.xlarge 1412
  • m3.2xlarge 2492
  • r3.xlarge 2540

Verweis auf max_connections bei AWS RDS MySQL Instance Sizes im Jahr 2015

Update 2017-07

Die aktuelle Einstellung für RDS MySQL max_connections ist standardmäßig {DBInstanceClassMemory/12582880}, wenn Sie t2.micro mit 512 MB RAM verwenden, könnten die max_connections (512 * 1024 * 1024)/12582880 ~ = 40 sein, und so weiter auf.


Jeder Webserver kann viele Verbindungen zu RDS haben, was von Ihren SQL-Anforderungen vom Webserver abhängt.

74
Nick Tsai

Sie können das max_connections Wert, indem entweder die Standardparameterrichtlinie aktualisiert oder eine neue erstellt wird - ich würde empfehlen, die letztere zu verwenden.

  • Gehe zu RDS
  • Parametergruppen
  • Erstellen Sie eine neue Parametergruppe (AWS behält alles als Standard bei)
  • suche nach dem max_connections Wert
  • Ändern Sie den zu verwendenden Wert
  • Gehen Sie zur RDS-Instanz und ändern Sie sie
  • Wählen Sie eine neue Parametergruppe aus, die erstellt wurde, und starten Sie die Instanz neu, oder lassen Sie AWS sie beim nächsten Wartungsfenster neu starten

Hoffe das hilft!

35
David

Aktuelle Informationen für Postgresql t3-Instanzen (default.postgres10 Parametergruppe):

  • db.t3.micro - 112 max_connections
  • db.t3.small - 225 max_connections
  • db.t3.medium - 450 max_connections
  • db.t3.large - 901 max_connections
  • db.t3.xlarge - 1802 max_connections
  • db.t3.2xlarge - 3604 max_connections

Ähnliches gilt für default.postgres9 und default.postgres11

6
anton.uspehov

Während das Erhöhen der maximalen Anzahl von Verbindungen in der Serverkonfiguration das Problem beheben kann, sollten Sie in Betracht ziehen, Ihre Anwendungskonfigurationen und -implementierungen zu überprüfen.

Ich bin kein Experte für Magento, aber da ich kürzlich ein ähnliches Problem mit einem Projekt hatte, an dem ich arbeitete, stellte ich fest, dass die Standardimplementierung des von mir verwendeten Frameworks bei jedem Aufruf der Datenbank eine Verbindung herstellte.

Während dies für einige möglicherweise keine Probleme verursacht, besteht der beste Weg, um zu verhindern, dass der Server mit dem Fehler "ZU VIELE VERBINDUNGEN" abstürzt, darin, eine Datenbank zu implementieren, sobald Sie mehr Besucher oder einige Aufgaben haben, die datenbankintensiv sind und auf mehreren Verbindungen ausgeführt werden können Verbindungspool.

Dies verhindert, dass die Anwendung mehr Verbindungen erstellt, die der Server verarbeiten kann, und die Anwendung für die Benutzer nicht zum Absturz bringt. Ein Verbindungspool würde eine Warteschlange für die Anforderungen für den Zugriff auf die Datenbank halten, bis eine Verbindung verfügbar wird, damit die Benutzeranforderung verarbeitet werden kann.

Denken Sie daran, dass der Verbindungspool in einem Multithread-Szenario threadsicher sein sollte.

1
Uriel Bertoche

Melden Sie sich bei Ihrer RDS-Instanz an (mit einem MySQL-Client) und führen Sie die folgende Abfrage aus:

SHOW VARIABLES LIKE 'max_connections';
1
Shammi Shailaj

Das sind nicht maximal 40 Verbindungen, das sind maximal 40 RDS-Instanzen. Sie verwenden höchstwahrscheinlich nur eine Instanz basierend auf Ihrer Beschreibung.

Sie können Tausende von Verbindungen zum RDS-Server herstellen, da jedes Mal, wenn eine Sitzung mit der Datenbank geöffnet wird, eine neue Verbindung erstellt wird. Sie stoßen wahrscheinlich auf Leistungseinschränkungen und sollten versuchen, die RDS-Instanz zu vergrößern.

0
jason s