How to find current connection pool size on heroku

后端 未结 2 1367
不思量自难忘°
不思量自难忘° 2021-02-02 10:32

We have a rails 3.2(.11) app with many dynos running on the heroku bamboo stack, connecting to a MySQL RDS server. There seem to be some issues with our current database connect

相关标签:
2条回答
  • 2021-02-02 11:14

    To check the pool size, start a heroku console heroku run rails c, and run:

    ActiveRecord::Base.connection_pool.size
    

    Some webservers such as Puma are multithreaded, so the DB pool size matters. You can also run a multi-threaded worker such as Sidekiq, which also will be affected by the pool size.

    Note that Heroku will ignore your database.yml file. To set the pool size you can append ?pool=25 to the DATABASE_URL in your heroku app's configuation.

    0 讨论(0)
  • 2021-02-02 11:31

    This information is available via an interface in Rails https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_handling.rb#L98-L106 it is in Rails 3+

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

    You can use this to get the current pool size without needing to eval or relying on the existence of an unexposed instance variable however in rails 3 it may return nil if it hasn't been explicitly set

    ActiveRecord::Base.connection_config[:pool]
    # => 5
    
    0 讨论(0)
提交回复
热议问题