ПРОБЛЕМА
Сервер начинает отдавать 504 ошибку когда TOP показывает следующие показатели:
LA < 1.3
Tasks 1483, 3 running, 1480 sleeping
В логах nginx
2602#0: *37902 upstream timed out (110: Connection timed out) while reading response header from upstream,
Такое поведение начинается когда количество процессов > 1300
В главном скрипте вызывается exec(), в момент когда процессов более 1300, exec() выполняется до таймаута и скрипт обрывается с 504 ошибкой. Такое ощущение, что какое то ограничение не дает запустить новый скрипт через exec и он стоит в очереди.
504 это таймаут, логично что скрипты не успевают отработать
правильная стратегия смотреть что происходит со скриптами
временный фикс увеличить все таймауты в нгинксе и пхп