Я вижу довольно много ошибок 502 «Плохой шлюз» в Google App Engine. На графике ниже это сложно увидеть (цвета очень похожи, и я не могу понять, как их изменить), но это мой трафик за последние 6 часов:
Темно-розовая линия представляет ошибки 5xx. Они начали около 9:30 утра и успокоились около 12:30 PST. Но за эти 3 часа возвращался nginx 502 Bad Gateway
довольно последовательно. А потом это просто прекратилось.
В течение этого времени, единственные коммиты, которые я сделал для кода Чтобы попытаться изменить поведение, нужно было увеличить каждый экземпляр с 0,5 до 1 ГБ памяти и увеличить TTL кеша для некоторых 404 ответов. Я также добавлена проверка живучести чтобы nginx знал, когда серверы приложений не работают.
Я проверил журнал ошибок nginx и увидел несколько таких:
failed (111: Connection refused) while connecting to upstream
Я трижды проверил, и все мои серверы приложений работают на порту 8080, поэтому я исключил это. Я думаю, что, возможно, проверка работоспособности помогла движку приложения узнать, когда перезагружать серверы, которые в этом нуждались, но я не вижу ничего в журналах stdout с серверов приложений, которые указывали бы на то, что какой-либо из них был плохим.
Может быть, это просто какая-то ошибка движка приложения?
РЕДАКТИРОВАТЬ @ 9: 17p PST: Ниже приведено изображение моего трафика App Engine за последние 24 часа с минимальными изменениями кода в приложении. Я выделил шипы 5xx, чтобы вы могли видеть их более четко.
К сожалению, существует множество причин для увеличения количества ошибок 502, таких как:
Чтобы получить дополнительную информацию, вам необходимо загляните в журнал Stackdriver для ошибки 502 из облачной консоли.
В следующий раз, когда произойдут всплески, вы можете проверить, не вызваны ли ошибки 502 тем, что ваши проверки состояния дали ложные срабатывания. Был еще один Сообщение ServerFault у которого была та же проблема, которая может сообщить вам немного больше. В этом случае вы можете захотеть увеличить дисковое пространство вашего экземпляра.
Чтобы избежать дальнейших всплесков, я предлагаю вам добавить проверки готовности в файл app.yaml вместе с проверками работоспособности, чтобы ваш экземпляр не получал никакого трафика до того, как он будет полностью готов принять его. Возможно, вы уже видели это, но вот документация для добавления проверок готовности
И последнее, что нужно проверить, это то, попадает ли процент трафика с всплеском, который у вас был, по сравнению со всем вашим трафиком ниже SLA.