2011-03-11 9 views
15

Tengo un sitio que implementé en Heroku. Es un sitio de poco tráfico, así que si nadie va por un par de horas y luego se dirige a él, la carga tardará entre 5 y 10 segundos. Cualquier otra solicitud a otras páginas en ese sitio se carga rápidamente. Si salgo del sitio por completo y vuelvo a registrarlo unos minutos más tarde, también vuelve rápidamente.Heroku - Spin Up

Es solo si se deja inactivo durante un par de horas que el tiempo de activación es notable. ¿Alguien más tiene este problema? Si es así, cómo lo arreglaste.

También sobre el tema, ¿ocurre lo mismo con Google App Engine? Actualmente solo estoy probando estas plataformas de alojamiento de aplicaciones, así que realmente no tengo ninguna preferencia por las tecnologías/idiomas.

+2

App Engine tiene problemas similares. Están algo mitigados por la nueva función de "solicitud de precalentamiento" (1.4.0) y las instancias "siempre activadas". – Ezra

+0

Esto es realmente dos preguntas. –

Respuesta

11

La manera más rápida de "solucionar" este problema es asegurarse de que su sitio siempre esté activo. Configure una cuenta de pingdom (http://www.pingdom.com/) que hará ping a su sitio cada pocos minutos solo para mantenerlo activo.

Tengo una ruta especial myapp.com/keep_alive que no hace nada excepto golpear la pila de rieles sin almacenar en caché.

¡Espero que esto ayude!

+1

¿Cómo 'golpea la pila de rieles sin almacenar en caché'? – ryanprayogo

+0

el almacenamiento en memoria caché en heroku usa barniz, así que asegúrese de no configurar ningún encabezado relacionado con el almacenamiento en caché. si es un método simple que solo muestra una vista, estarás bien. – jonnii

0

Lo mejor que puede hacer para reducir este tiempo es minimizar el tamaño de su babosa. Esto incluye pasos como eliminar cualquier activo de imagen de PSD o AI, eliminar archivos PDF y minimizar su conjunto de gemas. Para obtener más información, consulte: http://devcenter.heroku.com/articles/slug-size. Como referencia, mis aplicaciones generalmente pueden girar en menos de un segundo.

4

¿Lo está organizando con el "plan gratuito", es decir. solo con 1 dyno

Si es así, lo que experimente podría ser un Dyno Idling. Puede aumentar el número de dynos para que su aplicación esté "siempre activada"

2

Según tengo entendido, Heroku hace público este comportamiento.

Para el alojamiento de sitios gratuitos, un heroku 'Dyno' se dedicta a su sitio, si el dinamo está inactivo durante un período de tiempo, el recurso se redirigirá a otra parte, cuando intente acceder al sitio después de esta vez, el sistema ir a pedir un Dyno de vuelta.

Puede evitar esto pagando dyno's adicionales que se quedarán con su sitio o puede visitar el sitio de forma regular con un script automatizado.