Como calcular max_connections para PostgreSQL e default_pool_size para pgbouncer?

Como calcular max_connections para PostgreSQL e default_pool_size para pgbouncer?

Existe uma regra ou algo que eu possa usar para calcular um bom número max_connectionspara default_pool_sizee max_client_conn?

Os padrões são estranhos. O padrão do PostgreSQL é max_connections=100, enquanto o pgboucner é padronizado como default_pool_size=20. default_pool_size não deveria ser sempre maior que max_connections? Caso contrário, qual é o sentido? Achei que o pgbouncer deveria nos permitir lidar com mais conexões, reduzindo sua sobrecarga (reutilizando as conexões do PostgreSQL). Estou confuso.

Estou procurando conselhos semelhantes aos encontrados emWiki do PostgreSQL, como "este parâmetro deve ser aproximadamente 50% da sua memória".

Lembro também que havia uma planilha para MySQL que permitia calcular esse tipo de parâmetro. Seria incrível ter algo assim para PostgreSQL/pgbouncer.

Responder1

default_pool_size deve sempre ser menor que max_client_conn. max_client_connection é o número de conexões de soquete entre o aplicativo e o pgbuffer. default_pool_size é o número de conexões entre o pgbuffer e o banco de dados.

Portanto, se você estiver usando a transação como modo de pool, poderá compartilhar o menor default_pool_size com o maior número de clientes.

informação relacionada