PostgreSQL
已安装在我的工作站上,并且我托管一个管理网站(Sinatra
使用PG
上的nginx
gem),我也只能访问该网站。
我经常收到以下错误消息:
PG::ConnectionBad - FATAL: sorry, too many clients already
max_connections
确实设置为100,但是我随时在任何页面上使用两个。看着pg_stat_activity
,我看到两个没有问题的简单SELECT
:
SELECT * FROM twils ORDER BY id DESC LIMIT 30 client backend
SELECT mdate FROM params WHERE mkey = $1 client backend
这两项都在页面有时间甚至可以渲染(可比较的速度)之前完成,因此不应保持打开状态。因此,或者我误认为我需要强行关闭这些文件,或者它们没有在页面末尾(基本上是垃圾收集)关闭。
由于PG
连接是无状态的,并且不会在页面之间进行连接,因此我印象深刻的是,页面结尾意味着所有连接对于用户都是关闭的。我以为是自动的。我认为这是错误的吗?我是否要在每个连接上故意执行conn.close
或conn.finish
?
conn = PG.connect( dbname: 'hq' )