我已经设置了 PGBouncer 并将其配置为连接到我的 postgres 数据库,并且一切都连接得很好,但是我不确定它是否真的有效。
我有一个 php 脚本,它作为守护进程运行并获取 beanstalk 作业。问题是对于系统上的每个不同的用户/操作,它都会打开一个与 postgres 的新连接,然后使该连接处于空闲状态,因为守护程序实际上并未停止运行,因此连接永远不会终止(对此的快速解决方法是重置脚本循环结束时的连接,但是对于许多连接来说效率很低)。
无论如何,这导致 postgres 最终耗尽连接并锁定......
所以 PGBouncer 似乎是答案。
但是现在当我运行它时,我在执行 ps ax | 时多次看到相同的数据库连接。grep postgres。
PGBouncer 不应该只打开 1 个连接到数据库并通过该连接路由所有流量吗?然后打开一个新连接,如果那个连接已满?
目前我有 3 个用于一个数据库连接(我的访问控制系统)和 2 个用于另一个数据库(我的客户端特定数据)。
对我来说,感觉就像如果我推出这些更改,那么我将面临同样的问题,即连接将再次被吃掉,因为它们没有被释放。
我希望这足以解释某人提供任何建议。