Muss ich damit rechnen, dass Google App Engine Instanzen nach dem Zufallsprinzip neu startet?

Muss ich damit rechnen, dass Google App Engine Instanzen nach dem Zufallsprinzip neu startet?

Ich hatte gestern eine Instanz der App (Schande über mich), die in der Region Australien-Südost1 lief.

Letzte Nacht war ein kritischer Moment für die App. Die Leute verließen sich darauf, dass sie einwandfrei funktionierte, und dann verschwand die Instanz mitten im Event einfach. Ungefähr 8 Minuten später wurde eine neue Instanz erstellt und bediente den Datenverkehr weiter.

Ist das etwas, womit ich rechnen muss? Instanzen verschwinden zufällig und werden neu gestartet? Mir ist klar, dass ich mehrere Versionen hätte laufen sollen, aber was passiert, wenn beide Versionen gleichzeitig neu gestartet werden?

Die Protokolle zeigen keine Fehler an, wenn die App (eine standardmäßige, einfache Rails-App) neu gestartet wird. Die Protokolle weisen lediglich eine 8-minütige Lücke auf, gefolgt vom Hochfahren von Puma in der neuen Instanz.

Die CPU-Auslastung war konstant und lag selten über 5 %. Die Speicherauslastung lag bei etwa 840 MB, mit einem leichten Spitzenwert von 880 MB kurz vor dem Neustart. „Disk Bytes“ lag konstant bei ~15 KB/s, mit einem großen Spitzenwert von 40 MB/s um die Zeit des Neustarts.

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

Antwort1

Laut Dokumentation gibt es zwei Hauptgründe für einen unerwarteten Neustart:

  • Instanzen werden wöchentlich neu gestartet [1].
  • Ein Health Check, der einen anderen HTTP-Code als 200 ausgibt [2].

Wenn Sie zusätzliche Informationen bereitstellen, können wir darüber sprechen.

Antwort2

Ähnliches Problem bei mir; neue GesundheitschecksÜberprüfen Sie die Anwendung nicht, nur die VM und Docker (es sei denn, Sie haben sie so eingerichtet, dass sie Ihre Anwendung überprüfen, was ich nicht getan habe), und daher scheint es ziemlich klar zu sein, dass das Problem bei der App Engine selbst liegt.

Bearbeiten: Nicht sicher, warum das Negative, aber um es klarer zu machen.

Ja, Sie sollten damit rechnen, dass sie Instanzen zufällig neu starten. Das Verhalten, das Sie sehen, liegt nicht an Ihrer App.

verwandte Informationen