2012-08-08 6 views
5

Tengo una aplicación (paga) que promedia unas 200 visitas por día (1000 páginas vistas, esporádicamente aumenta a 1000 visitas y 10000 páginas vistas o más) y Actualmente estoy despertando a través de trabajos cron cada 5 minutos para garantizar un rendimiento razonable. Esto no siempre funciona durante los picos de latencia del motor de la aplicación (afortunadamente esto no ocurre con demasiada frecuencia en los últimos tiempos), y cuando eso sucede, mi ajax pide un tiempo de espera miserable. Además, la estrategia de cron-job no es ideal porque consume las cuotas.Ajuste de rendimiento de AppEngine con instancias inactivas y configuraciones de latencia pendientes

Por el momento tengo las instancias inactivas y la configuración de latencia pendiente todo en "Automático".

¿Alguien tiene experiencia con el ajuste manual de esas configuraciones y cuáles son algunos valores típicos que podrían garantizar un mejor rendimiento en mi aplicación debido al tráfico?

Respuesta

2

En lugar del trabajo cron, simplemente configure las Idle Instances en 1. Las Idle Instances son instancias que están en "reserve", lo que le da una respuesta instantánea a una carga mayor. Entonces, si tiene una carga que requiere tres instancias y establece la Instancia inactiva en una, entonces tendrá 4 instancias ejecutándose.

El inconveniente es que siempre pagará por una instancia más que la utilizada actualmente. Sin embargo, tenga en cuenta que obtiene 28 horas de instancia gratuitas al día, que cubren una instancia inactiva de forma gratuita (excepto en los casos en que una instancia sirve realmente solicitudes, y una instancia más inactiva tendrá un costo adicional).

Además, si tiene Instancias inactivas configuradas, la latencia pendiente tendrá poco o ningún efecto, ya que se consulta la latencia pendiente cuando se deben iniciar instancias nuevas, pero siempre tiene una instancia en reserva. Advertencia: esto no es cierto si el código de la aplicación se vuelve loco o está mal escrito (como llamar a servicios externos dentro de un controlador de solicitudes), lo que da como resultado tiempos de respuesta anormalmente largos.

En pocas palabras: establezca Idle Instances en 1, luego configure la latencia pendiente en algún valor máximo que aún sea aceptable para su aplicación.

+0

Gracias por esto: ¿su sugerencia es establecer instancias inactivas en 1 en función de la cantidad de tráfico en mi aplicación? Me pregunto si un mayor tráfico justificaría aumentar ese número y cuánto. Me parece que bajo carga la aplicación funciona bastante bien, el problema está relacionado principalmente con la "inactividad" real en mi experiencia con el motor de la aplicación. – JohnIdol

+0

Sí, propongo inactividad = 1 (máximo y mínimo) en función del hecho de que su aplicación está inactiva en su mayoría. Normalmente, como ahora, GAE detendría todas las instancias, lo que generaría largos tiempos de carga de las primeras solicitudes después de un tiempo de inactividad. –

+0

Cool - Deshabilitaré mis tareas cron y daré una oportunidad. Gracias por los consejos :) – JohnIdol

Cuestiones relacionadas