Что вызывает тайм-аут шлюза 504 в Google App Engine примерно каждые 10 минут?

Я только что перенес наш рабочий веб-сайт на Google App Engine вчера вечером, и теперь приложение начинает давать таймаут 504 Gateway Timeout примерно через 10-15 минут бездействия. Но я несколько месяцев запускал тестовую версию нового сайта в GAE в другом проекте, и у него никогда не было этой проблемы. Я не понимаю, что происходит.

Ниже приведен график панели управления GAE, который показывает, что почти все запросы возвращались как ошибки 5XX до 7 утра. Я не был уверен, что происходит, поэтому просто решил повторно развернуть приложение, чтобы посмотреть, заставит ли это снова работать ... и по какой-то причине мне показалось, что это так.

enter image description here

После того, как я повторно- развернут, сайт снова начал отвечать. Я ненадолго щелкнул, исправил ошибку, повторно развернул ... все было хорошо.

Затем в 7:20 все запросы снова превратились в ошибку 504 Gateway Timeout.

Я видел его в 7:40, повторно развернутый без каких-либо изменений, он снова заработал и снова работает.

Что происходит?

p.s. Я знаю, что динамический экземпляр gae будет бездействовать и потребует времени для повторного запуска, но это не то, что происходит. Я вижу эту задержку в моем проекте разработчика gae, но страница появляется примерно через 10 секунд. В моем производственном gae мой браузер просто вращается целую минуту, а затем выдает ошибку 504 и продолжает делать это до тех пор, пока я не разверну заново.

enter image description here

2
задан 12 December 2018 в 05:50
3 ответа

• Отсутствует заголовок? (Или ... Задача не загружается из слогана)

  • 1 | Как указано, вы используете какую-либо форму RAID?

перекрытие точек может вызвать ошибку

  • Объект не указан как есть У вас запущена тестовая продукция

Обновлена ​​ваша продукция: gcs_bucket

-1
ответ дан 3 December 2019 в 16:06

Это может быть связано с тем, что ваше приложение масштабируется до 0 экземпляров, это приводит к тому, что новый запрос вызывает холодную загрузку, чтобы избежать этой проблемы, вы можете настроить прогрев request для повышения скорости отклика

Например:

automatic_scaling:
  target_cpu_utilization: 0.68
  min_instances: 1
  max_instances: 10
  min_idle_instances:1

С этой конфигурацией вы можете гарантировать по крайней мере 1 экземпляр, готовый для входящих запросов, и избежать масштабирования до 0.

Обычно, когда развертывание готово 1 или 2 экземпляра раскручиваются, но без трафика приложение может масштабироваться до 0.

0
ответ дан 3 November 2020 в 23:05

Согласно OP:

У него было слишком много вызовов syslog() или error_log() за слишком короткое время, и это вызвало проблему с серверной частью, из-за которой приложение зависало и интерфейсный шлюз попытается связаться с серверным экземпляром, но экземпляр не работает, поэтому шлюз в конечном итоге истечет время ожидания.

Исправление заключается в удалении вызовов для ведения журнала.

1
ответ дан 11 May 2021 в 22:17

Теги

Похожие вопросы