google-app-engine - flexible - google cloud app engine prices
¿El motor de la aplicación es más caro cuando es más lento? (3)
Recientemente, ha habido bastantes ocasiones en que el motor de la aplicación parece funcionar más lento. Hasta cierto punto eso es comprensible con la arquitectura de su plataforma en la nube. No estoy hablando de nuevas instancias de servidor, solo solicitudes para calentar servidores. También me refiero a la CPU, no a la API del almacén de datos, pero me pregunto sobre eso también.
Parece que durante estos períodos lentos recibo muchas más advertencias amarillas sobre mis solicitudes, diciendo que estoy usando mucha CPU. Ciertamente tardan más en completarse durante este período. Lo que me preocupa es que durante estos períodos lentos, mi CPU facturable parece subir.
Para que quede claro: cuando el motor de la aplicación es rápido, una solicitud puede completarse en 100 ms. En un período lento, puede llevar más de 1s para la misma solicitud. Mismo URI, el mismo almacenamiento en caché, la misma ruta de procesamiento, el mismo almacén de datos, los mismos índices: mucha más CPU. Las advertencias amarillas, tal como lo entiendo, se refieren al uso de CPU facturable, y hay muchas más cuando el motor de la aplicación es más lento.
Esto parece configurar una situación extraña donde mi aplicación cuesta más para funcionar cuando el rendimiento del motor de la aplicación es peor. Esto significa que Google gana más dinero cuanto peor funciona la plataforma (hasta el punto en que falla o los clientes se van). Tal vez tengo la situación equivocada, y no funciona así, pero si funciona así, entonces, como cliente, las presiones y equilibrios están todos mal. Eso no implica ninguna incorrección por parte de Google, solo que las relaciones entre esas dos cosas no parecen correctas.
Casi parece que el algoritmo de Google va más o menos así: ''Si le doy un trabajo de procesamiento a una CPU y comienzo mi reloj, entonces deténgalo cuando el trabajo vuelva a obtener la cifra de la CPU facturable''. es decir, no mide el trabajo de CPU en absoluto. Seguramente ese tiempo debe dividirse por la cantidad de trabajos de procesamiento que se ejecutan simultáneamente más algunos adicionales para cubrir el cambio de contexto adicional. Estoy seguro de que eso es difícil de medir, quizás esa es la razón.
Supongo que podría argumentar que es justo que pague más cuando el motor de la aplicación tiene una gran demanda, pero eso hace que el presupuesto sea casi imposible: no puede generar estadísticas como ''100 usuarios me cuesta $ 1 por día'', porque eso podría cambiar por una gran cantidad de razones, incluida la incorporación del motor de la aplicación a más clientes de los que la infraestructura puede manejar de forma realista. Si Google sobre-suscribe el motor de la aplicación, entonces todos los clientes pagan más, es otra relación que no suena bien. Sin duda, los costos de Google deberían disminuir a medida que incorporan más clientes, y esos clientes usan más recursos, según las economías de escala.
¿Debo esperar dos solicitudes idénticas en mi aplicación que me cuesten aproximadamente la misma cantidad cada vez que se ejecutan, independientemente de la cantidad de tiempo que el motor de la aplicación mida para completarlas realmente? ¿He entendido mal cómo funciona esto? Si no lo hice, ¿hay alguna razón por la cual no deba preocuparme a largo plazo? ¿Hay alguna documentación que aclare esta situación? Aclamaciones,
Colin
Esta pregunta parece vieja y creo que el esquema de precios debe haber cambiado ...
Google App Engine cobra por " horas de instancias " y las instancias generadas actualmente se pueden ver en la consola de GAE. Y Google proporciona ajustes para que pueda decidir el costo frente a la latencia de su aplicación.
https://developers.google.com/appengine/docs/adminconsole/performancesettings
Me di cuenta de que si el front-end se empantana al golpear un recurso de back-end común que GAE generará un montón de instancias para bajar la latencia. Y pagará por esas horas de instancia aunque la latencia / rendimiento no mejore. Los ajustes que mencioné parecen ayudar con eso.
Sí, es cierto. Es un fastidio También les lleva más de un segundo iniciar mi aplicación Java (que me cobraron) cada vez que decidieron que mi sitio tenía poca demanda y no necesitaban los recursos.
Terminé usando un cron para hacer ping a mi sitio automáticamente cada minuto para mantenerlo caliente. Hacer todo el trabajo desperdiciado hizo que mi factura fuera más barata, ya que no tenía el tiempo de inicio, en cambio solo tenía muchos pings de 2 ms ...
Sería más complicado, pero podrían cambiar el algoritmo de facturación para que sea una función de carga. O tal vez podrían normalizar las mediciones de la CPU en función de la realización de llamadas similares en el pasado.
Estoy de acuerdo en que esto presenta problemas para los desarrolladores.