2012-03-20 31 views
47

Recientemente 'actualicé' mi aplicación a la plataforma de cedro en heroku. De manera predeterminada, estoy usando thin como servidor web. Pero siempre he tenido la tentación de usar unicorn por concurrencia y hacer que mi dyno dollar fuera padre. Pero me preocupa que haya algunos inconvenientes al usar algo diferente a Thin.Debo usar thin o unicornio en Heroku Cedar

¿Alguien tiene experiencia en la vida real con esta decisión?

Gracias!

Jonathan


Notas:

Quiero saber razones por las cuales cada uno no debe hacer esto

+0

que es un buen artículo. gracias por compartir – Andrew

Respuesta

28

Actualización - 3 meses después.

He estado usando unicornio en producción durante 3 meses, y he estado muy contento. Uso 4 trabajadores de unicornio por banco de pruebas.

Una cosa que debes tener en cuenta es el consumo de memoria y las fugas. En efecto, en lugar de tener 512 MB de memoria por banco de pruebas, tienes eso dividido por el número de trabajadores heroku. Pero manteniendo esto en mente - que ha sido un gran costo protector

+0

Gracias por compartir ... Estoy evaluando el mismo movimiento e incluso hice algo de [Benchmarking para mi aplicación] (http://ylan.segal-family.com/blog/2012/08/20/better-performance -on-heroku-thins-vs-unicorn-vs-puma /). Definitivamente parece que el unicornio tendrá como resultado un ahorro de costos. –

+0

Para mejorar el valor de su respuesta, incluya instrucciones o enlaces a las instrucciones para usar Unicorn. ¡Porque estoy pensando que eso es lo que haré! – slothbear

+1

¿Sabe si hay algún problema con el uso de variables globales (por ejemplo, cada trabajador guarda sus propias variables globales, o están compartiendo/destruyendo el mismo alcance global)? Este no es un patrón común en MVC, pero sí lo usamos en algunos lugares. ¡Gracias! –

7

No hay razón para no hacerlo - Yo uso unicornio en Heroku con mucho éxito.

0

Si usa Thin, y su código no borra las solicitudes muy rápidamente, entonces está en problemas, ya que Heroku usa enrutamiento aleatorio, las solicitudes se acumularán en un dinamo bloqueado, incluso si hay dinas libres. Usar Unicorn parece mejor, si puedes manejar el golpe de memoria, porque es menos probable que todas tus horquillas reciban solicitudes lentas al mismo tiempo. No resuelve el problema de enrutamiento aleatorio de Heroku, pero debería ayudar mucho.

Enlaces y explicaciones en esta respuesta:

https://stackoverflow.com/a/19965981/1233555