Rails ActionCable y cantidad de conexiones.

11 views
Skip to first unread message

c.pf...@gmail.com

unread,
Oct 27, 2016, 2:13:46 PM10/27/16
to rub...@googlegroups.com
Hola, les escribo para hacerles una consulta... Tengo una app Rails, en la cual utilizo ActionCable para la comunicación realtime. Al deployarla a producción con nginx+phussion passenger, me di cuenta que al abrir la sexta conexión, el sistema se quedaba "esperando". Ahora bien, cuando cerraba una pestaña del browser automáticamente cargaba el sistema de la que estaba "esperando".

Mirando los logs, he detectado que el problema estaba en el parámetro passenger_max_pool_size que viene por defecto seteado a 6 en una imagen que estoy utilizando. Lo cambie a 10 y ahora permite abrir hasta 10 conexiones..
Al ser la primera app donde uso web sockets, surge la pregunta respecto a este numero y el consumo de recursos por parte de la app. Haciendo un passenger-status veo un listado con entradas similares a:

* PID: 22257   Sessions: 1       Processed: 0       Uptime: 1m 17s
    CPU: 4%      Memory  : 151M    Last used: 1m 17s ago

O sea que para un cliente, esta ocupando 151M. Es decir que, por ejemplo es imposible tener 100 clientes conectados en un servidor con 2 GB RAM (compartido entre sistema y servidor nginx-passenger). Aunque leí por ahí que el consumo "no es lineal".

El promedio de memoria entre la lista es aproximadamente de 170M, es realmente eso lo que consume una app rails o estoy teniendo un leak de memoria por algún lado? 
Estoy por probar unas gemas que me tiran más información respecto al consumo y memoria, pero sería de ayuda si alguien comparte su experiencia.

Gracias!
Saludos

El_Hoy

unread,
Oct 28, 2016, 12:38:27 PM10/28/16
to rub...@googlegroups.com
Creo yo, que la idea de action cable (aunque nunca lo use) es usar hilos livianos (threads?) y entonces comparten memoria y está todo bien, pero quizás eso requiera un poco de configuración en passenger, seguramente tenés que buscar la configuración ahí... o hacer que de alguna forma action cable use otro server...

Suerte

--
Nuestra página web es: http://rubylit.github.io/
 
Para anular la suscripción a este grupo, envía un mensaje a rubylit-u...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "rubylit" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubylit+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Gaston Ramos

unread,
Oct 28, 2016, 1:32:01 PM10/28/16
to rub...@googlegroups.com

--
Nuestra página web es: http://rubylit.github.io/
 
Para anular la suscripción a este grupo, envía un mensaje a rubylit-unsubscribe@googlegroups.com

---
Has recibido este mensaje porque estás suscrito al grupo "rubylit" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubylit+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Gastón Ramos

c.pf...@gmail.com

unread,
Oct 28, 2016, 5:26:19 PM10/28/16
to rub...@googlegroups.com
Hola Gente, si lo vi, lo había probado en development pero tuve un par de problemas. Hoy intenten de vuelta y lo corri en producción y funciona a la perfección. Básicamente fue necesario poner el cable en una sub URI en mi caso y con eso se abre una sola conexión para el action cable!

Gracias
Saludos

=========================================================
Ing. Christian N. Pfarher
Crespo, Entre Ríos. Argentina
e-mail: c.pf...@gmail.com
blog: 
http://kikipblog.blogspot.com
twitter: @cpfarerr
skype: kikip1
=========================================================
Reply all
Reply to author
Forward
0 new messages