我最近在我的应用上遇到ActiveRecord::ConnectionTimeoutError
错误。这是在Puma上部署到Heroku的Rails 4应用程序。当我运行heroku pg:info
时,我发现当遇到ActiveRecord::ConnectionTimeoutError
错误时,只有5/20个连接处于活动状态。我在阅读this forum post on Heroku之后最终将我的MAX_THREADS
和MIN_THREADS
env变量从2增加到5,这使问题暂时消失,但该解决方案似乎对问题应用了一些黑魔法并希望它消失。
我想知道的是如何正确确定我的连接池需要多大。现在我有一个网络工作者和两个额外的resque
工作人员。
我的应用程序当前处理了大量的S3图像上传,我认为这可能会引发问题。这是我想要传递给resque
工作人员以释放网络工作者的事情。我确实注意到在我增加池大小后上传过程急剧加快,但是我担心只是增加池大小不是一个可扩展的长期解决方案。