如何计算 PostgreSQL 的 max_connections 和 pgbouncer 的 default_pool_size?

如何计算 PostgreSQL 的 max_connections 和 pgbouncer 的 default_pool_size?

是否存在什么规则或东西可以用来计算 和 的max_connections合适default_pool_size数字max_client_conn

默认值很奇怪。PostgreSQL 默认为 max_connections=100,而 pgboucner 默认为 default_pool_size=20。default_pool_size 难道不应该总是高于 max_connections 吗?否则,有什么意义呢?我以为 pgbouncer 旨在通过降低开销(通过重用 PostgreSQL 的连接)让我们处理更多连接。我很困惑。

我正在寻找类似于PostgreSQL 的维基,例如“此参数应占内存的~50%”。

我还记得 MySQL 有一个电子表格可以让你计算这类参数。如果 PostgreSQL/pgbouncer 有类似的东西就太棒了。

答案1

default_pool_size 应该始终小于 max_client_conn。max_client_connection 是应用程序和 pgbuffer 之间的套接字连接数。default_pool_size 是 pgbuffer 和 db 之间的连接数。

因此,如果您使用事务作为池模式,则可以与大量客户端共享较小的default_pool_size。

相关内容