Назад | Перейти на главную страницу

Стоит ли ожидать, что Google App Engine будет случайным образом перезапускать экземпляры?

Вчера у меня был один экземпляр приложения (позор мне), работающий в регионе австралия-юго-восток1.

Прошлая ночь была критическим временем для приложения; люди полагались на то, что он работает безупречно, а затем в середине мероприятия экземпляр просто исчез. Примерно через 8 минут был создан новый экземпляр, который продолжал обслуживать трафик.

Стоит ли этого ожидать? Экземпляры случайно исчезают и перезапускаются? Я понимаю, что у меня должно было быть запущено несколько версий, но что, если обе версии перезапустятся одновременно?

Журналы не показывают никаких ошибок в момент перезапуска приложения (стандартного простого приложения Rails). В журналах есть промежуток в 8 минут, после чего Puma загружается в новом экземпляре.

Использование ЦП было постоянным и редко превышало 5%. Использование памяти составляло около 840 МБ, с небольшим пиком в 880 МБ непосредственно перед перезапуском. «Disk Bytes» был постоянным ~ 15 КБ / сек с большим скачком 40 МБ / сек во время перезапуска.

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

Согласно документации, есть 2 основные причины неожиданного перезапуска:

  • Экземпляры перезапускались еженедельно [1].
  • Проверка работоспособности дает код HTTP, отличный от 200 [2].

Если вы предоставите дополнительную информацию, мы сможем ее обсудить.

Аналогичная проблема у меня; новые проверки здоровья не проверять приложение, только виртуальная машина и Docker (если вы не настроили их для проверки вашего приложения, чего у меня нет), и поэтому кажется довольно очевидным, что проблема в самом движке приложения.

Изменить: не знаю, почему отрицательный, но чтобы это было более понятно.

Да, вы должны ожидать, что они будут случайным образом перезапускать экземпляры. Наблюдаемое вами поведение не связано с вашим приложением.