我有一个Azure postgresql灵活服务器,运行General Purpose, D2s_v3, 2 vCores, 8 GiB RAM, 32 GiB storage instance
并使用pg_bouncer进行连接池。
在任何时候都有100个活动连接,当我尝试连接(不使用pgbouncer)时,我得到错误Remaining connection slots are reserved
。我还可以看到连接时有零星的错误,看起来像是来自pgbouncer,因为postgresql服务器上没有失败的连接。
服务器配置有:max_connections
= 100pgbouncer.default_pool_size
= 50pgbouncer.max_client_conn
= 5000pgbouncer.min_pool_size
= 0pgbouncer.pool_mode
=交易
最大连接数是否应该增加,或者是否应该调整一些其他的配置,以便pgbouncer不分配所有的连接?
1条答案
按热度按时间bgibtngc1#
因此,一般来说,唯一的解决方案是将
pgbouncer.default_pool_size
限制为一个足够小的值,以不占用所有连接。一个月一个月一个月= 400个月一个月二个月一个月= 50
在总共有7个数据库和一个用户连接到它们的情况下,pgbouncer创建的最大连接数将是
7 * 1 * 50
= 350,这小于max_connections。不幸的是,Azure中公开的几个pgbouncer参数不允许更好的配置,而只能为服务器上的所有数据库设置相同的配置。