首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在heroku上查找当前连接池大小

如何在heroku上查找当前连接池大小
EN

Stack Overflow用户
提问于 2013-01-26 02:45:57
回答 2查看 11.2K关注 0票数 24

我们有一个带有许多dynos的Rails3.2(.11)应用程序运行在heroku竹子堆栈上,连接到MySQL RDS服务器。我们当前的数据库连接似乎有一些问题,所以我们正在尝试调试每个dyno正在旋转的确切连接数。我知道我可以在heroku上的DATABASE_URL配置中设置连接池的大小,但似乎找不到默认情况下当前使用了多少连接。

两个主要问题:

1)如何查询heroku使用的连接池大小?

2)为什么dyno需要大于1的连接池大小?我的理解是rails一次只能执行一个请求,所以在我看来,一个数据库连接应该就足够了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-02 07:26:36

要检查池大小,请启动heroku控制台heroku run rails c,并运行:

代码语言:javascript
复制
ActiveRecord::Base.connection_pool.size

有些the服务器是多线程的,所以DB池的大小很重要。您还可以运行多线程工作线程,比如Sidekiq,它也会受到池大小的影响。

请注意,Heroku将忽略您的database.yml文件。要设置池大小,您可以在heroku应用程序的配置中将?pool=25附加到DATABASE_URL。

票数 53
EN

Stack Overflow用户

发布于 2014-07-25 03:11:14

此信息可通过Rails https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_handling.rb#L98-L106中的接口获得,它位于Rails 3+中

代码语言:javascript
复制
ActiveRecord::Base.connection_config
# => {:adapter=>"postgresql", :encoding=>"utf8", :pool=>5, :host=>"localhost", :database=>"triage_development"}

您可以使用它来获取当前的池大小,而不需要计算或依赖于未公开的实例变量的存在,但是在Rails3中,如果没有显式设置它,它可能会返回nil

代码语言:javascript
复制
ActiveRecord::Base.connection_config[:pool]
# => 5
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14528371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档