postgresql 连接超时_关于超时:如何自动关闭PostgreSQL中的空闲连接?

有些客户端连接到我们的postgresql数据库,但保持连接打开。

是否有可能告诉Postgresql在一定量的不活动后关闭这些连接?

TL; DR

IF you're using a Postgresql version >= 9.2

THEN use the solution I came up with

IF you don't want to write any code

THEN use arqnid's solution

您可以使用cron作业查看连接最后一次处于活动状态(请参阅pg_stat_activity)并使用pg_terminate_backend来终止旧连接。 在简单的查询中轻松表达。 我不确定pg_terminate_backend是否可以在相当古老的8.3中使用。

我的服务使用C3P0池有类似的问题 - 所有连接都关闭了(最后阻塞)但是在我进行了负载测试后,空载连接的数量在负载测试完成后没有下降。 在pg_stat_activity表中,我有很多idle连接正在运行SELECT 1或SHOW TRANSACTION ISOLATION LEVEL。 然后,当我运行第二次负载测试时,数字会继续增长,这是否意味着在第二次测试期间没有重新使用空闲连接? 我可以在这里使用相同的解决方案来解决它吗?

@Zip你可以把你的评论转到一个新问题,并在这里添加这个新问题的链接吗? 我会更容易给你。

@Stephan问题在这里:stackoverflow.com/questions/51682584/…。 谢谢!

对于那些感兴趣的人,这是我提出的解决方案,灵感来自Craig Ringer的评论:

(...

你可能感兴趣的:(postgresql,连接超时)