如何解决pgbouncer 不保持服务器连接打开
我最近安装了一个 Pgbouncer,因为我们的数据库收到了很多连接。 (网络/API 活动)。 问题是:显然,pgb 并没有在他的池中保留打开的连接以在之后重用它们。 我认为这是因为:
- 在检查数据库时(从 pg_stat_activity 中选择 ..)我看到连接数量随着流量的增长而增长,但在高峰期之后它减少了很多。 (整个过程发生在我为 server_lifetime 设置的 1800 秒
- 当我在 pgbouncer 数据库中查询 'show pools' 时,我可以看到 'active sv' 增加,但是在处理它们之后,我没有看到很多 'sv idle' 留在那里,直到下一个流量高峰。
有什么可以解释为什么连接没有保持在 'sv idle' 中的吗? 我该如何“调试”/进一步测试以确定可能出现的问题?
我这样设置 pbgouncer :
- server_lifetime = 1800
- server_idle_timeout = 1800
- max_client_conn = 5000
- default_pool_size = 1500
- min_pool_size = 50
- pool_mode = 交易
(我尝试使用 pool_mode = session 具有相同的行为)
脚本打开连接是这样的:
$co = new PDO($dsn,$user,$pwd);
$co->exec('SET statement_timeout TO 10000;');
$co->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$co->setAttribute(PDO::ATTR_PERSISTENT,true);
并在查询数据库后,执行 PDO::closeCursor()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。