24

MySQL RDS サーバーに接続している heroku バンブー スタックで実行されている多くの dyno を備えた Rails 3.2(.11) アプリがあります。現在のデータベース接続に問題があるようです。そのため、各 dyno がスピンアップしている正確な接続数をデバッグしようとしています。Herokuの構成で接続プールのサイズを設定できることはわかっていますDATABASE_URLが、現在デフォルトで使用されている接続の数を確認できないようです。

2 つの主な質問:

1) heroku が使用する接続プールのサイズを確認するにはどうすればよいですか?

2) dyno が 1 より大きい接続プール サイズを必要とする理由はありますか? 私の理解では、レールは一度に1つのリクエストしか実行できないため、私が見る限り、必要なのは1つのデータベース接続だけです。

4

2 に答える 2

10

この情報は、Rails https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_handling.rb#L98-L106のインターフェースを介して入手できます。Rails 3 以降にあります。

ActiveRecord::Base.connection_config
# => {:adapter=>"postgresql", :encoding=>"utf8", :pool=>5, :host=>"localhost", :database=>"triage_development"}

これを使用して、公開されていないインスタンス変数の存在を評価したり依存したりする必要なく、現在のプールサイズを取得できますが、Rails 3 では、明示的に設定されていない場合は nil を返す可能性があります。

ActiveRecord::Base.connection_config[:pool]
# => 5
于 2014-07-24T19:11:13.957 に答える