2016-03-29 4 views
0

Langjähriger Zuhörer, zum ersten Mal Anrufer hier ... meine Postgres-Datenbank sagt es folgendes ermöglicht:Wie ermittle ich den idealen Wert für meinen Datenbank.yml-Pool?

Anschlüsse: 6/120

Was sollte mein entsprechenden „Pool“ in diesem Szenario einstellen? 6? 120? Etwas ganz anderes? Vielen Dank im Voraus für jede Hilfe hier.

Wenn es einen Unterschied macht, verwende ich Puma & Sidekiq, um eine Rails 4-Anwendung auf Heroku auszuführen.

Antwort

0

Wie viele Verbindungen verwendet Ihre App bei typischer Auslastung? Setzen Sie den Pool im Leerlauf auf diesen Wert, und legen Sie den Maximalpool auf einen Wert fest, der unter dem vom Server zulässigen Höchstwert liegt.

Aber diese Einstellung der Serververbindungen sollte auch auf Ihre Anwendung und Hardware abgestimmt sein. Es ist in der Regel eine Funktion Ihrer Kernanzahl, RAM und work_mem Einstellung und die Art der Festplatten, die Sie haben, sondern hängt auch davon ab, welche Art von Abfragen Ihre App in der Regel ausgeführt wird.

(siehe hier für ein paar Tipps: https://wiki.postgresql.org/wiki/Number_Of_Database_Connections)

Postgres ist eigentlich ziemlich nachsichtig: Öffnen von Verbindungen ist billig (ein unterdimensionierten Pool), im Vergleich zu vielen anderen Datenbanken; idle offene Verbindungen (übergroßer Pool) sind auch billig (ein paar K von geteilten Puffern, wenn Speicher dient).

Es ist wirklich mehr aktive Verbindungen als Ihre Ressourcen zulassen, dass Probleme verursachen, weshalb die serverseitige Konfiguration wichtiger ist.