我正在努力将Heroku免费和合理地用于Rails Postgres应用程序。 关于Heroku Postgres的定价,我可以看到连接限制(最便宜的报价设置为120)。
此连接限制是什么意思? 我已经看过它可能会处理参数max_connections但是即使如此,我也不知道它是如何工作的。
如果我的rails服务器收到订单并请求我的数据库进行更新或简单选择,并且始终使用相同的数据库Postgres用户:它是否计入一个连接? 我不这么认为,但我想了解有关此限制的更多细节。
非常感谢你。
答案 0 :(得分:1)
max_connection
定义同时运行以提供查询的Postgres实例数。 max_connections
为同一个postgres用户打开多个连接。它可以在某些情况下提高性能,但这可能会导致性能不佳,如下所示:
如果您是用户群增加,则由于连接数量有限,您可能会遇到too many clients
错误。
解决方案有两个方面:
pgbouncer, repmgr and PgPool
等工具来处理池连接。您可以通过以下链接进一步研究:
https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
http://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-MAX-CONNECTIONS
你可以在这里特别研究Ruby:https://devcenter.heroku.com/articles/concurrency-and-database-connections#maximum-database-connections