2009-12-06 15 views
16

Creé un sitio web Hello World en Google App Engine. Está utilizando Django 1.1 sin ningún parche.Aplicación Google App Engine Extremadamente lenta

Aunque es solo una página web muy simple, lleva mucho tiempo y a menudo se agota.

¿Alguna sugerencia para resolver este problema?

Nota: Responde rápidamente después de la primera llamada.

+2

esto se discutió en una publicación reciente en el grupo de appengine: http://groups.google.com/group/google-appengine/browse_thread/thread/22692895421825cb También se analiza el problema con el ping - probablemente conduzca a una menor y tiempos de espera de la aplicación más cortos a medida que google y los tramposos aumentan. –

Respuesta

14

Ésta es una sugerencia horrible, pero lo haré de todos modos:

construir una pequeña aplicación cliente o simplemente utilizar wget con cron acceder periódicamente su aplicación, quizás una vez cada 5 minutos más o menos. Eso debería evitar que Google lo coloque en un estado inactivo.

Digo que esta es una sugerencia horrible porque es una pérdida de recursos y un abuso del servicio gratuito de Google. Espero que hagas esto solo durante una fase corta de prueba/inicio.

+1

He encontrado que las solicitudes provenientes de direcciones IP diferentes no necesariamente se entibian mutuamente. Depende de qué parte de la granja web de G aciertes ... el la sesión parece ser pegajosa para una IP dada, aunque – HaveAGuess

4

Si está respondiendo rápidamente después de la primera solicitud, es probable que solo se trate de iniciar y poner en marcha el proceso correspondiente. Es cierto que es un poco sorprendente que tarde tanto tiempo. ¿Esto es después de que hayas actualizado la aplicación y verificado que el tablero de AppEngine muestra que está lista?

La "lentitud de primer golpe" es bastante común en muchos entornos web. Es un poco molesto durante el desarrollo, pero no es un problema para la producción.

+0

Puedo confirmar que esto también me pasó a mí. Parece que AppEngine pone su aplicación en reposo si no se accede, y se trata de un proceso laborioso para despertarla por primera vez. He experimentado tiempos de espera en una aplicación funcional. Una vez que Dondon tenga su primer millón de usuarios, ya no será un problema :) –

3

Me encuentro con lo mismo con la aplicación basada en los pilones. Tengo el servidor de la página inicial como estático, y tengo una llamada ajax ficticia para subir la aplicación, antes de que el usuario escriba las credenciales. Por lo general, es suficiente para evitar una respuesta prolongada ... Solo una idea que podría usar antes de que realmente tenga un millón de usuarios;).

4

Una sugerencia más que puede aumentar el tiempo de respuesta.

Habilitar la facturación aumenta las cuotas y, según mi experiencia personal, también aumenta la respuesta general de una aplicación. Probablemente debido a la mayor prioridad para las aplicaciones habilitadas para la facturación que tiene Google. Por ejemplo, una aplicación con facturación inhabilitada, puede enviar hasta 5-10 correos electrónicos/solicitud, una aplicación con facturación habilitada hace frente fácilmente a 200 correos electrónicos/solicitud.

Sólo asegúrese de ajustar los bajos niveles de facturación - nunca se sabe cuando Slashdot, Digg o HackerNews Avisos su sitio :)

7

Para resumir this thread hasta ahora:

  • Los arranques en frío tardan mucho tiempo
  • Google desalienta ping aplicaciones para mantenerlos calientes, pero la gente no sabe la alternativa
  • Hay an issue filed a pagar por una instancia caliente (del Java)
  • Hay an issue filed para Python. Entre otras cosas, los archivos .py no están precompilados.
  • Algunas aplicaciones se ven afectadas de forma desproporcionada (no puede encontrar Google Grupos ref o emisión)
  • March 2009 thread about Python dice < 1s (!)

Veo menos hablar sobre Python sobre este tema.

+1

Es una queja común con Python cuando Django está involucrado. La gran cantidad de material que se importa no funciona bien con un sistema donde las instancias se descargan con tanta frecuencia. – geoffspear

3

Utilicé Pingdom por razones obvias, no se inicia en frío es una ventaja. Por supuesto, los clientes pronto vendrán en masa y será un problema

19

Ahora Google ha agregado una opción de pago "Siempre en" que es 0.30 $ por día.

Al usar esta característica, su aplicación ya no tendrá que iniciarse en frío.

Siempre En

Mientras solicitudes de preparación ayudar a su escala aplicación sin problemas, que hacen no ayuda si su aplicación tiene muy bajas cantidades de tráfico. Para las aplicaciones de alta prioridad con tráfico bajo , puede reservar instancias a través de la función Siempre activada de de App Engine.

Siempre activo es una característica premium, que reservas de tres instancias de su aplicación , no apagarlos, incluso si la aplicación no tiene tráfico. Esto mitiga el impacto de las solicitudes de carga en aplicaciones que tienen cantidades pequeñas o variables de tráfico . Además, si una instancia de Always On muere accidentalmente, App Engine reinicia automáticamente la instancia con una solicitud de preparación. Como resultado, las aplicaciones Siempre activadas deben estar seguras para hacer la inicialización posible igual a durante las solicitudes de preparación.

Incluso después de habilitar Always On, su aplicación puede experimentar solicitudes de carga si hay un aumento repentino de en el tráfico.

para habilitar siempre, vaya a la página de facturación Ajustes de consola de administración de la aplicación , y haga clic en la casilla de verificación Siempre En .

http://code.google.com/intl/de-DE/appengine/docs/adminconsole/instances.html

1

Es posible que desee probar CloudUp. Hace ping a tus aplicaciones de Google periódicamente para mantenerlas activas. Es gratis y puedes agregar tantas aplicaciones como quieras. También es compatible con azul y heroku.