¿Debo esperar que Google App Engine reinicie las instancias aleatoriamente?

¿Debo esperar que Google App Engine reinicie las instancias aleatoriamente?

Ayer tuve una instancia de la aplicación (qué vergüenza), ejecutándose en la región australia-sureste1.

Anoche fue un momento crítico para la aplicación; la gente confiaba en que funcionara perfectamente y luego, a mitad del evento, la instancia simplemente desapareció. Aproximadamente 8 minutos después, se creó una nueva instancia y continuó atendiendo tráfico.

¿Es esto algo que debería esperar? ¿Las instancias desaparecen y se reinician aleatoriamente? Me doy cuenta de que debería haber tenido un par de versiones ejecutándose, pero ¿qué pasa si ambas versiones se reinician al mismo tiempo?

Los registros no muestran ningún error en el momento en que se reinicia la aplicación (una aplicación Rails simple y estándar). Los registros solo tienen un intervalo de 8 minutos, seguido del inicio de Puma en la nueva instancia.

El uso de la CPU fue constante y rara vez superó el 5%. El uso de memoria fue de alrededor de 840 MB, con un ligero pico de 880 MB justo antes del reinicio. Los "Bytes de disco" eran constantes ~15 KB/s, con un gran pico de 40 MB/s en el momento del reinicio.

aplicación.yaml

entrypoint: bundle exec rackup -p $PORT
env: flex
runtime: ruby

handlers:
- url: .*
  script: main.app
  secure: always

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 4
  cpu_utilization:
    target_utilization: 0.75

Respuesta1

Según la documentación, existen 2 motivos principales para un reinicio inesperado:

  • Las instancias se reiniciaron semanalmente [1].
  • Una verificación de estado que proporciona un código HTTP diferente de 200 [2].

Si proporciona información adicional, podemos discutirla.

Respuesta2

Problema similar conmigo; nuevos controles de saludno revises la aplicación, solo la VM y Docker (a menos que los configure para verificar su aplicación, lo cual yo no he hecho), por lo que parece bastante claro que el problema está en el motor de la aplicación en sí.

Editar: No estoy seguro de por qué el neg, pero para que esto quede más claro.

Sí, debe esperar que reinicien las instancias aleatoriamente. El comportamiento que estás viendo no se debe a tu aplicación.

información relacionada