tutorial rails learn español ruby-on-rails-3 heroku ruby-on-rails-3.2

ruby on rails 3 - rails - Cómo encontrar el tamaño actual de la agrupación de conexiones en Heroku



ruby on rails tutorial pdf (2)

Esta información está disponible a través de una interfaz en Rails https://github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_handling.rb#L98-L106 está en Rails 3+

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

Puede usar esto para obtener el tamaño actual de la agrupación sin necesidad de evaluar o confiar en la existencia de una variable de instancia no expuesta; sin embargo, en los rieles 3 puede devolver nula si no se ha establecido explícitamente

ActiveRecord::Base.connection_config[:pool] # => 5

Tenemos una aplicación de Rails 3.2 (.11) con muchos dinámicos que se ejecutan en la pila de bambú heroku, que se conecta a un servidor MySQL RDS. Parece que hay algunos problemas con nuestras conexiones de base de datos actuales, por lo que estamos tratando de depurar exactamente cuántas conexiones está girando cada dinamómetro. Sé que puedo establecer el tamaño de un grupo de conexiones en la configuración DATABASE_URL en heroku, pero parece que no puedo averiguar cuántas conexiones se están usando actualmente de forma predeterminada.

Dos preguntas principales:

1) ¿Cómo puedo encontrar el tamaño del conjunto de conexiones utilizado por heroku?

2) ¿Hay alguna razón por la cual un dinamómetro necesitaría un tamaño de grupo de conexiones mayor que 1? Tengo entendido que los rieles solo pueden ejecutar 1 solicitud a la vez, por lo que una conexión de base de datos debería ser todo lo que se necesita hasta donde puedo ver.


Para verificar el tamaño de la piscina, inicie una heroku console heroku run rails c , y ejecute:

ActiveRecord::Base.connection_pool.instance_eval { @size }

Algunos servidores web como Puma son multiproceso, por lo que el tamaño de la agrupación de DB es importante. También puede ejecutar un trabajador multihilo como Sidekiq, que también se verá afectado por el tamaño del grupo.

Tenga en cuenta que Heroku ignorará su archivo database.yml. Para establecer el tamaño del grupo, puede agregar ?pool=25 a DATABASE_URL en la configuración de su aplicación heroku.