Вчера у меня был один экземпляр приложения (стыдно мне), работающий в регионе australia-southeast1.
Прошлая ночь была критическим временем для приложения; люди полагались на его безупречную работу, а затем, на полпути к мероприятию, экземпляр просто исчез. Примерно через 8 минут был создан новый экземпляр, который продолжил обслуживать трафик.
Это то, чего я должен ожидать? Экземпляры случайно исчезают и перезапускаются? Я понимаю, что у меня должно было быть запущено несколько версий, но что, если обе версии перезапустятся одновременно?
В журналах не отображается никаких ошибок в момент перезапуска приложения (стандартного, простого приложения Rails). В журналах есть только 8-минутный промежуток, после которого Puma загружается в новом экземпляре.
Использование ЦП было постоянным и редко превышало 5%. Использование памяти составляло около 840 МБ с небольшим пиком в 880 МБ непосредственно перед перезапуском. "Disk Bytes" был постоянным ~15 КБ/сек с большим пиком в 40 МБ/сек около времени перезапуска.
приложение.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
решение1
решение2
Похожая проблема у меня; новые проверки здоровьяне проверяйте приложение, только виртуальная машина и Docker (если только вы не настроили их для проверки своего приложения, чего я не делал), поэтому кажется вполне очевидным, что проблема в самом движке приложения.
Редактировать: Не уверен, почему отрицательный ответ, но чтобы было понятнее.
Да, вы должны ожидать, что они будут случайным образом перезапускать экземпляры. Поведение, которое вы видите, не связано с вашим приложением.