¿Cómo calcular max_connections para PostgreSQL y default_pool_size para pgbouncer?

¿Cómo calcular max_connections para PostgreSQL y default_pool_size para pgbouncer?

¿Existe alguna regla o algo que pueda usar para calcular un buen número para y max_connections?default_pool_sizemax_client_conn

Los valores predeterminados son extraños. PostgreSQL tiene como valor predeterminado max_connections=100, mientras que pgboucner tiene como valor predeterminado default_pool_size=20. ¿No debería default_pool_size ser siempre mayor que max_connections? De lo contrario, ¿cuál es el punto? Pensé que pgbouncer estaba destinado a permitirnos manejar más conexiones reduciendo su sobrecarga (al reutilizar las conexiones de PostgreSQL). Estoy confundido.

Estoy buscando consejos similares a los que se encuentran enWiki de PostgreSQL, como "este parámetro debería ser ~50% de tu memoria".

También recuerdo que había una hoja de cálculo para MySQL que te permitía calcular este tipo de parámetros. Sería fantástico tener algo así para PostgreSQL/pgbouncer.

Respuesta1

default_pool_size siempre debe ser menor que max_client_conn. max_client_connection es el número de conexiones de socket entre la aplicación y pgbuffer. default_pool_size es el número de conexiones entre pgbuffer y la base de datos.

Entonces, si está utilizando transacción como modo de grupo, puede compartir el default_pool_size más pequeño con la mayor cantidad de clientes.

información relacionada