Configuración de Puma Cluster en Heroku

Necesito ayuda con mi configuración de Puma (Multi-Thread + Multi-Core Server) en mi aplicación RoR4 Heroku. Los documentos de Heroku que no están del todo actualizados. Seguí este:Concurrencia y conexiones de base de datos para la configuración, que no menciona la configuración de un Cluster, por lo que tuve que usar los dos tipos juntos (con hilos y multinúcleo).

Mi configuración actual:

./Procfile

web: bundle exec puma -p $PORT -C config/puma.rb

./config/puma.rb

environment production
threads 0,16

workers 4
preload_app!

on_worker_boot do
  ActiveRecord::Base.connection_pool.disconnect!

  ActiveSupport.on_load(:active_record) do
    config = Rails.application.config.database_configuration[Rails.env]
    config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 # seconds
    config['pool']              = ENV['DB_POOL'] || 5
    ActiveRecord::Base.establish_connection
  end
end

Preguntas:

a) ¿Necesito la configuración before_fork / after_fork como en Unicorn, ya que los trabajadores del Cluster están bifurcados?
b) ¿Cómo afino el número de hilos según mi aplicación? ¿Cuál sería la razón para dejarlo caer? / ¿En qué casos haría una diferencia? ¿No está optimizado 0:16?
c) La base de datos Heroku permite 500 conexiones. ¿Cuál sería un buen valor para DB_POOL en función del subproceso, el trabajador y el conteo de dinamómetro? - ¿Cada subproceso por trabajador por dinamo requiere una única conexión de base de datos cuando se trabaja en paralelo?

En general: ¿Cómo debería ser mi configuración para la concurrencia y el rendimiento?

Respuestas a la pregunta(2)

Su respuesta a la pregunta