我正在尝试确定与Postgres数据库的连接数。这是针对开发人员和业余爱好计划的heroku-postgres的连接限制的情况,该限制限制为20。我有一个使用数据库的python django应用程序。我想了解什么构成联系。使用该应用程序的用户的每个实例都可以算作一个连接吗?或者从应用程序到数据库的连接被计为一个。
要弄清楚这一点,我尝试了以下方法。
select * from pg_stat_activity where datname ='db_name';
最初,我打开的应用程序实例的每个似乎都有一个新记录,而管理员实例的每个都有一个记录。一段时间后,来自管理员的查询显示了6条记录(2条用于admin的连接,2条pgadmin的连接和2条针对网络应用的连接)。
不幸的是,我仍然不确定是否将使用Web应用程序的每个用户实例都计为一次连接,还是将从Web应用程序到数据库的所有连接计为一个?
谢谢。
最好的问候!
答案 0 :(得分:0)
使用PostgreSQL参数记录连接和断开连接(带有正确的log_line_prefix
参数以获取客户端信息)应该会帮助:
log_connections(布尔值)
导致与服务器的每次尝试连接都要记录,并成功完成客户端身份验证。只要 超级用户可以在会话开始时更改此参数,并且不能更改 在一个会话中完全改变。默认为关闭。
log_disconnections(布尔值)
导致会话终止被记录。日志输出提供类似于log_connections的信息,以及持续时间 会议。只有超级用户才能在会话开始时更改此参数, 并且在一个会话中根本无法更改。默认为关闭。