与 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 非常高。确保您实际上拥有更少的连接。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...