¿Por qué recibo una solicitud de CPU alta en la carga de la primera página cuando uso Google App Engine con Ruby on Rails?

En lugar de piratear un cron para mantener las instancias en todo momento, puede habilitar la facturación y establecer un valor de “instancias mínimas inactivas” en la consola de administración de la aplicación. Puede configurar instancias residentes para estar siempre en línea.

Con las instancias residentes también puede habilitar las solicitudes de calentamiento, que puede especificar un controlador para procesar. Una solicitud de calentamiento puede hacer algo como iniciar un programa o cargar algún módulo o código en la memoria. Se garantiza que las instancias residentes manejarán las solicitudes de calentamiento antes de que comiencen a servir a los usuarios. Esto significa que cuando un usuario realiza una solicitud a una instancia residente, la instancia ya estará “activa” y no necesita cargar código adicional en la memoria.

Los documentos sobre esto están aquí:
https://developers.google.com/ap…

También escribí una respuesta más larga sobre los trucos que puedes usar para reducir el tiempo de inicio de la aplicación aquí:
La respuesta de Jeremy Weinstein a Google App Engine: ¿Qué se puede hacer con los largos tiempos de carga de páginas?

Esto sucede porque Rails necesita cargarse en una nueva instancia, las siguientes solicitudes serán procesadas por la misma instancia y es por eso que toman menos CPU.

Este problema ocurrirá en GAE para todos los frameworks / Java Frameworks / Django y otros, todos necesitan cargar el código en la memoria.

Hasta que Google permita una manera de mantener una o más instancias ejecutándose (por un costo adicional o gratis), existe una solución alternativa relativamente buena

cree un archivo cron.yaml y póngalo en el directorio raíz de su aplicación
Pega este código.

cron:

– descripción: keep_alive

url: /

horario: cada 1 minutos

le indicará al motor de la aplicación que ejecute un trabajo cron cada 1 minuto y solicite la página de dominio principal “/”, puede cambiarla a cualquier url “relativa a su dominio” que desee.

Esto mantendrá una instancia de servidor en el aire en todo momento.
Si bien es un truco, redujo el uso de mi CPU y las solicitudes fueron mucho más rápidas después de lanzar mi sitio por primera vez. Google, en mi opinión, desea esta solución porque resuelve este problema, mejora el rendimiento y reduce los costos.