Devo esperar que o Google App Engine reinicie as instâncias aleatoriamente?

Devo esperar que o Google App Engine reinicie as instâncias aleatoriamente?

Tive uma instância do aplicativo (que vergonha), rodando na região australia-southeast1 ontem.

A noite passada foi um momento crítico para o aplicativo; as pessoas confiavam que ele funcionaria perfeitamente e, no meio do evento, a instância simplesmente desapareceu. Cerca de 8 minutos depois, uma nova instância foi criada e continuou a atender o tráfego.

Isso é algo que eu deveria esperar? Instâncias desaparecendo e reiniciando aleatoriamente? Sei que deveria ter algumas versões em execução, mas e se ambas as versões forem reiniciadas ao mesmo tempo?

Os logs não mostram nenhum erro no momento em que o aplicativo (um aplicativo Rails simples e padrão) é reiniciado. Os logs têm apenas um intervalo de 8 minutos, seguido pela inicialização do Puma na nova instância.

O uso da CPU era constante e raramente acima de 5%. O uso de memória foi de cerca de 840 MB, com um ligeiro pico de 880 MB pouco antes da reinicialização. "Bytes de disco" era uma constante de aproximadamente 15 KB/s, com um grande pico de 40 MB/s no momento da reinicialização.

app.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

Responder1

De acordo com a documentação, existem 2 motivos principais para uma reinicialização inesperada:

  • Instâncias reiniciadas semanalmente [1].
  • Uma verificação de integridade fornecendo um código HTTP diferente de 200 [2].

Se você fornecer alguma informação adicional, podemos discuti-la.

Responder2

Problema semelhante comigo; novos exames de saúdenão verifique o aplicativo, apenas a VM e o Docker (a menos que você os configure para verificar seu aplicativo, o que eu não fiz) e, portanto, parece bastante claro que o problema está no próprio mecanismo do aplicativo.

Editar: Não sei por que o neg, mas para deixar isso mais claro.

Sim, você deve esperar que eles reiniciem as instâncias aleatoriamente. O comportamento que você está vendo não se deve ao seu aplicativo.

informação relacionada