Verbindungslimit für Amazon RDS (Postgres)?


73

Ich habe im Internet gesucht und die RDS-Dokumente durchsucht, aber ich kann anscheinend kein offenes Verbindungslimit finden.

Für das, was es wert ist, plane ich, die neue Postgres-Variante von RDS zu verwenden, aber ich nehme an, dass eine Antwort von der mySQL-Seite des Hauses auch akzeptabel wäre.

Vielen Dank!

Antworten:


85

Wenn Sie eine PostgreSQL-RDS-Instanz einrichten, können Sie nach max_connections fragen:

select * from pg_settings where name='max_connections';

max_connections ist auf 5696 eingestellt.


7
Beachten Sie, dass max_connections standardmäßig im Speicher Ihrer Instanz parametrisiert ist, sodass Ihre Nummer möglicherweise stark von 5696 abweicht.
Erjiang

Wow ... Das ist großartig, hatte keine Ahnung, dass ich es so abfragen könnte ... das macht meine App weitaus effizienter.
user1943442

3
db.t2.small (2GiB Ram) hat 198 Verbindungen
Peter Dietz

4
db.t2.medium (4GiB Ram) verfügt über 413 Verbindungen. Die Formel aus der Standardparametergruppe lautet: max_connections = LEAST ({DBInstanceClassMemory / 9531392}, 5000), aber ich habe noch nichts richtig in einen passenden Taschenrechner eingesteckt.
Peter Dietz

5
show max_connections;Abfrage macht auch das gleiche
Bits

78

Einfach mit show max_connections;

Sie können diesen Wert in den Parametergruppen der RDS-Konsole ändern . Der Wert der max_connectionsin dem Standard postgres9.3 Parametergruppe ist {DBInstanceClassMemory/12582880}. In Version 9.4 ist der Standardwert {DBInstanceClassMemory/31457280}.


Eigentlich kann die Standardparametergruppe nicht geändert werden, also sollten wir eine neue Parametergruppe erstellen, ja?
Sanftes Yang

5
Richtig, Sie müssen eine neue Parametergruppe erstellen, eine Familie der Standardparametergruppe. Danke für den Tipp!
Fernando Á.

4
Beachten Sie, dass diese Standardeinstellung in den Postgres-Versionen unterschiedlich sein kann. In 9.4 ist der Standardwert {DBInstanceClassMemory/31457280}weniger als die Hälfte der Verbindungen der vorherigen Standardeinstellung.
Brad Koch

2
Mit 1 GB Speicher sollte ich 34 Verbindungen bekommen? Mein show max_connections;gibt mir 26. (1024 * 1024 * 1024) / 31457280 = 34 Warum setzt Amazon den Wert auf dieses Verhältnis?
Rafael Oliveira

1
Parametergruppen Dokumentation hier
derekv

12

Afaik die oben zurückgegebenen 'max_connections' sind tatsächlich der aktuelle Wert von max_connections, wie in der ParameterGroup festgelegt. Ich wollte wissen, wie man die maximal möglichen Verbindungen einer bestimmten Postgres-Instanz in AWS dynamisch ermittelt , konnte aber aus irgendeinem Grund nicht einmal ein Infoblatt von AWS finden. Mir ist jedoch aufgefallen, dass der ADS-Konsolen-RDS-Abschnitt eine Fortschrittsanzeige Ihrer aktuellen Verbindungen im Vergleich zur Gesamtzahl der möglichen Verbindungen anzeigt:

Schnappschuss von der AWS-Konsole

Wenn ich dies in Google Chrome Tools untersuche, habe ich festgestellt, dass der blaue Teil 4 Pixel breit ist, während die Gesamtbreite des Fortschrittsbalkens 50 Pixel beträgt, was bedeutet, dass meine aktuellen 121 Verbindungen ungefähr 8% der Gesamtzahl ausmachen, was eine Annäherung an ergibt Maximal mögliche Verbindungen für meine Instanz db.r3.large bei 1512.


2
Aber woher kommt dieser rote Balken? Wie kann ich es nachschlagen!
Andy Hayden

8

Sie können die max_connections ändern. Erstellen Sie einen Klon der Standardparameter. Ändern Sie dann den Wert, speichern Sie die Instanzgruppe und setzen Sie sie auf die neue Optionsgruppe. Starten Sie schließlich Ihre Instanz neu , damit die Einstellung wirksam wird.

Geben Sie hier die Bildbeschreibung ein


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.