Configurar Connection pool en ruby sinatra

62 views
Skip to first unread message

Gabriel Rodriguez

unread,
May 17, 2021, 10:33:47 AM5/17/21
to rubysur
Hola Gente,

Tengo una APP en Heroku con ruby + sinatra + puma + sequel que viene funcionando con 1 dyno sin ningún problema.

En cuanto intento incrementar a 2 dynos apenas accedo a la aplicación recibo un mensaje de error :
 Sequel :: DatabaseDisconnectError - PG :: UnableToSend: SSL SYSCALL error: EOF detected

El soporte de Heroku me dice que seguramente es porque al escalar los dynos estoy superando el máximo de las 20 conexiones disponibles por dyno de mi DB hobby.

La app usa un maximo de 6 conexiones de las 20 disponibles pero no entiendo como configurar mi puma.rb para poder limitar por ejemplo a 10 conexiones por dyno.

Supongo que es mediante el connection pool pero todos los ejemplos que encuentro son para rails con ActiveRecord y yo uso sinatra  con sequel sin ActiveRecord.

mi puma.rb actual es :

if ENV['RACK_ENV'] == 'production'
workers Integer(ENV['WEB_CONCURRENCY'] || 1) 
end

threads_count = Integer(ENV['MAX_THREADS'] || 5) 
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'


Si alguien puede darme una mano se agradece.



Geronimo Diaz

unread,
May 17, 2021, 11:17:10 AM5/17/21
to rubysur
Hola Gabriel,

El pool de conexiones tendria que ser igual a la cantidad de threads que vas a correr dentro de un worker, si configuras 5 threads entonces vas a tener que explicitamente decirle a Sequel que el pool tiene que ser 5, algo como: `Sequel.connect(db_url, { max_connections: 5 })`.

Espero te ayude. 

Saludos !

Geronimo Diaz
Ruby/RoR Developer
--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/rubysur/9dae6013-1956-4187-97e9-2a03437c6706n%40googlegroups.com.

Gabriel Rodriguez

unread,
May 17, 2021, 9:36:52 PM5/17/21
to rubysur
Buenísimo, 

Voy a probar por ese lado entonces.

Muchas gracias. !!
Reply all
Reply to author
Forward
0 new messages