Wie berechnet man max_connections für PostgreSQL und default_pool_size für pgbouncer?

Wie berechnet man max_connections für PostgreSQL und default_pool_size für pgbouncer?

Gibt es eine Regel oder etwas , mit dem ich eine gute Zahl für und max_connectionsberechnen kann ?default_pool_sizemax_client_conn

Die Standardwerte sind seltsam. PostgreSQL verwendet standardmäßig max_connections=100, während pgboucner standardmäßig default_pool_size=20 verwendet. Sollte default_pool_size nicht immer höher sein als max_connections? Was wäre sonst der Sinn? Ich dachte, pgbouncer soll uns die Handhabung von mehr Verbindungen ermöglichen, indem deren Overhead gesenkt wird (durch Wiederverwendung der Verbindungen von PostgreSQL). Ich bin verwirrt.

Ich suche nach Ratschlägen ähnlich denen inPostgreSQL-Wiki, etwa „dieser Parameter sollte ca. 50 % Ihres Speichers ausmachen“.

Ich erinnere mich auch, dass es eine Tabellenkalkulation für MySQL gab, mit der man diese Art von Parametern berechnen konnte. Es wäre toll, so etwas auch für PostgreSQL/pgbouncer zu haben.

Antwort1

default_pool_size sollte immer kleiner sein als max_client_conn. max_client_connection ist die Anzahl der Socket-Verbindungen zwischen der Anwendung und pgbuffer. default_pool_size ist die Anzahl der Verbindungen zwischen pgbuffer und der Datenbank.

Wenn Sie also Transaktionen als Poolmodus verwenden, können Sie die kleinere default_pool_size mit der größeren Anzahl an Clients teilen.

verwandte Informationen