如何解决与 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
非常高。确保您实际上拥有更少的连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。