与PgBouncer上的default_pool_size和max_connection混淆



我有一个数据库和用户对,配置如下。在为pgbouncer设置默认池大小时,我感到困惑。谁能解释一下这是怎么回事?

我有300 max_connection设置数据库。核心数为0,作为其在云上的共享cpu。

pool_mode = transaction
max_client_conn = 600
server_idle_timeout = 10
server_lifetime = 3600
query_wait_timeout = 120
default_pool_size = ??

default_pool_size为一个连接池中可以存在的数据库连接数。对于事务池,这将是每个数据库和用户并发事务的限制.

您应该将限制设置得足够小,从而不会有使数据库过载的危险。如果你的事务没有空闲时间,那就意味着不要允许更多的数据库会话超过你可以处理的核数或并发I/O请求数。

关于您的设置的附加注释:

  • server_idle_timeout = 10:那太小了。连接池的全部意义在于保持那些会话打开。

  • max_connections = 300异常高。确保你实际上有更少的连接。

最新更新