Вчера у меня был один экземпляр приложения (позор мне), работающий в регионе австралия-юго-восток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 основные причины неожиданного перезапуска:
Если вы предоставите дополнительную информацию, мы сможем ее обсудить.
Аналогичная проблема у меня; новые проверки здоровья не проверять приложение, только виртуальная машина и Docker (если вы не настроили их для проверки вашего приложения, чего у меня нет), и поэтому кажется довольно очевидным, что проблема в самом движке приложения.
Изменить: не знаю, почему отрицательный, но чтобы это было более понятно.
Да, вы должны ожидать, что они будут случайным образом перезапускать экземпляры. Наблюдаемое вами поведение не связано с вашим приложением.