Если есть возможность, замените Apache на
PHP FPM SAPI, прилагающийся к PHP. При этом можно включить
PHP slow log. В специальном логе будут появляться стек-трейсы процессов, которые работали больше заданного количества секунд именно в этот самый момент, то есть например, в 30ую секунду от запуска процесса.
В случае проблем рекомендуется делать slow log на все запросы, которые работают больше 1-2 секунд. Возможно дьявол кроется не в длинных процессах, а в огромном количестве мелких.
Также к PHP FPM прилагается встроенная система мониторинга. Можно посмотреть, сколько сейчас порождено процессов. Иногда их чрезвычайно много.
Если заменить Apache на PHP FPM невозможно, то путь исследования более длинный: нужно в настройках Apache настроить CustomLog с замером времени на выполнение. см. ответ на
serverfault. Затем исследовать логи (там будут только URL запросов, без стрек-трейсов) и самостоятельно определять, что именно могло вызвать тормоза.
Можно подключить профилировщики
XDebug +
Webgrind или
XHprof. Замеры можно делать на выборочных запросах, например только для пользователя с определённого IP или при наличии определённой куки. Отчёты будут очень детальные и будут включать замеры по всем внутренним вызовам от начала до завершения процесса, а не только в 30ую секунду, как делает php slow log.