У нас есть сервер хостинга LAMP, Nginx в качестве интерфейса для статических файлов и обратный прокси для Apache. Apache + mod_php обслуживает запросы php.
Apache
Server Version: Apache/2.4.10 (Debian) mod_fastcgi/mod_fastcgi-SNAP-0910052141 PHP/5.6.29-0+deb8u1
Server MPM: prefork
PHP
PHP Version 5.6.29-0+deb8u1
OPCache enabled
max_execution_time 60
Скрипты PHP умирают с ошибкой Превышено максимальное время выполнения 60 секунд, но вилка apache все еще пытается обслуживать эти запросы.
Дочерний процесс Strace apache пуст или показывает системный вызов futex
strace -p <PID>
Process <PID> attached
futex(0x7f16c503890, FUTEX_WAIT_PRIVATE, 2, NULL
На странице состояния сервера показано, что такие процессы находятся в состоянии «Отправка ответа» или «Изящное завершение» с очень большим количеством секунд с момента начала последнего запроса, превышающим значение тайм-аута Apache.
Apache и php являются стандартными основными пакетами debian jessie. Версия Debian - 8.7
Что может быть не так и как мы можем изменить настройки apache, чтобы исправить эти зависшие вилки с такими длинными запросами php.
После нескольких дней расследования я обнаружил, что проблема связана с расширением php-xdebug. Зависшие вилки исчезли после отключения xdebug из включенных модулей php.