У меня проблема с моим бэкэндом PHP, я не могу понять. Я испытываю периодическое «зависание» некоторых процессов apache при запросе API (PHP-код, возвращающий json).
Apache никогда не перестает доставлять файлы (html, css, js и т. Д.), Только ограниченное количество вызовов API вызывает проблему. Запрос находится в состоянии ожидания на вкладке «Сеть» в инструментах разработчика Chrome, и даже если я запускаю apachectl restart
запросы все еще ожидают после перезапуска. Я вижу, что все httpd
процессы не прекращаются, когда я бегу apachectl stop
, Я должен убить их killall -9 httpd
,
Когда возникает проблема, я должен остановить Apache, убить все процессы httpd и снова запустить apache. Если я не перезапускаю большинство вызовов API, зависают (вероятно, те, которые назначены зависшим дочерним процессам).
Все вызовы API, которые вызывают проблему, включают вызовы MySQL.
Проверяя список процессов на сервере MySQL, соединения установлены, но в состоянии SLEEP.
Проблема звучит как проблема кода или проблема конфигурации?
Журналы ошибок (mysql и apache) ничего не показывают, поэтому я думаю, что я должен попытаться strace
(dtruss
на mac?) процесс apache. Как я могу это сделать?
—
Среда:
Задача ещё не решена.
Других решений пока нет …