В приложении мы начинаем видеть много запросов 504 от Nginx, но в большинстве случаев мы видим только лог Nginx о факте 504 из-за 60-секундного таймаута, но никаких логов со стороны PHP/FPM . У нас все еще есть журналы приложений для некоторых конечных точек, связанных с 504, и в большинстве случаев это из-за какого-то неоптимизированного/тяжелого запроса к базе данных, но большинство ответов 504 вообще не содержат журналов приложений (только Nginx), и я не могу отлаживать/ понять, в чем проблема.
Моей первой мыслью был буфер журнала, поскольку у нас также есть тайм-аут на стороне fpm (который составляет те же 60 секунд), поэтому PHP не отправляет буферизованные журналы, потому что прерывания: но у нас есть логгер потока, а также для некоторых 60-х 504-запросов у нас есть журналы, поэтому эта идея была отклонена.
Вторая идея заключалась в недостаточном количестве PHP-работников , у нас есть
но у нас есть метрики Prometheus и они показывают, что максимальное количество активных процессов равно 15, то есть это далеко не 30. Также у нас есть HPA, настроенный на запуск новых подов, когда какой-либо под достигает 50% активных работников.
В зависимости от показателей ресурсов K8s все выглядит хорошо, без скачков в ресурсах (ЦП/память). В чем еще может быть проблема, где искать?
Подробнее здесь:
https://stackoverflow.com/questions/786 ... est-to-php