数据库
首页 > 数据库> > postgresql – PgBouncer不确定性

postgresql – PgBouncer不确定性

作者:互联网

我是第一次使用简单的Python Web应用程序(Flask psycopg2)尝试PgBouncer,我很难通过简单的谷歌搜索来解释其日志消息的含义.我基本上看到了一堆:

2014-06-09 09:25:07.867 20980 LOG C-0x1b1b240: vinum/vinum@unix:6432 login attempt: db=vinum user=vinum
2014-06-09 09:25:07.867 20980 LOG S-0x1b38bf0: vinum/vinum@127.0.0.1:5432 new connection to server
2014-06-09 09:25:07.875 20980 LOG C-0x1b1b240: vinum/vinum@unix:6432 closing because: client close request (age=0)
2014-06-09 09:25:15.626 20980 LOG C-0x1b1b240: vinum/vinum@unix:6432 login attempt: db=vinum user=vinum
2014-06-09 09:25:16.058 20980 LOG C-0x1b1b240: vinum/vinum@unix:6432 closing because: client close request (age=0)
2014-06-09 09:25:16.762 20980 LOG C-0x1b1b240: vinum/vinum@unix:6432 login attempt: db=vinum user=vinum
2014-06-09 09:25:16.796 20980 LOG C-0x1b1b3a8: vinum/vinum@unix:6432 login attempt: db=vinum user=vinum
2014-06-09 09:25:16.796 20980 LOG S-0x1b38d58: vinum/vinum@127.0.0.1:5432 new connection to server
2014-06-09 09:25:17.181 20980 LOG C-0x1b1b240: vinum/vinum@unix:6432 closing because: client close request (age=0)
2014-06-09 09:25:17.240 20980 LOG C-0x1b1b3a8: vinum/vinum@unix:6432 closing because: client close request (age=0)

我发现这些多次关闭时年龄= 0令人担忧,他们是否意味着连接总是重新创建,因此从不汇集?

解决方法:

I find these multiple closings with age=0 worrying

不,这整个日志看起来很好,往往表明池正在运行.

这些年龄= 0的条目被标记为LOG C,它们涉及客户端和pgBouncer之间的通信. age = 0只表示客户端使用连接的时间不到1秒,这与该日志中出现的毫秒数一致.

第1行,客户端连接到pgBouncer.

在第2行,有一个新的postgres后端的第一个连接.

在第3行,客户退出.

在第4行,新客户端到达并且没有与后端建立新连接,这意味着前一个客户端按预期重用.

在第8行,使用新的postgres后端建立第二个服务器连接(LOG S),这是必要的,因为有两个并发客户端(参见同一秒内两个先前LOG C行的成功登录尝试).

然后客户退出,没有提到关闭postgres后端的连接,正如预期的那样.它们应保持打开状态,直到它们在空闲时达到server_lifetime或server_idle_timeout.

标签:python,postgresql,pgbouncer
来源: https://codeday.me/bug/20190806/1599373.html