如何确定database.yml池的理想值?

时间:2016-03-29 01:56:34

标签: database postgresql ruby-on-rails-4 heroku puma

长期监听,这里的第一次来电...我的Postgres数据库说它允许以下内容:

连接: 一百二十〇分之六

在这种情况下,我的相应“池”设置应该是什么? 6? 120?还有别的吗?在此提前感谢您的任何帮助。

如果它有所作为我正在使用Puma& Sidekiq在Heroku上运行Rails 4应用程序。

1 个答案:

答案 0 :(得分:0)

您的应用在典型负载下使用了多少个连接?将空闲池设置为该空闲池,并将最大池设置为服务器允许的最大值。

但是,服务器连接设置也应该调整到您的应用程序和硬件。它通常是您的核心数,RAM和work_mem设置以及您拥有的磁盘类型的一些功能,但也取决于您的应用通常运行的查询类型。

(请参阅此处获取一些提示:https://wiki.postgresql.org/wiki/Number_Of_Database_Connections

Postgres实际上非常宽容:与许多其他数据库相比,开放连接便宜(小型池); 空闲打开连接(超大池)也很便宜(如果内存服务,则需要几K个共享缓冲区)。

实际上有更多的活动连接而不是资源允许会导致问题,这就是服务器端配置更重要的原因。