微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pgbouncer 不保持服务器连接打开

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?