У меня есть сервер, на котором запущен apache, и я иногда видел, что процессы apache переходят на 100% и остаются там. Сегодня, когда два процесса работают на 100%, я отключил внешний доступ к серверу (чтобы предотвратить дальнейшие запросы к apache). Через пять минут запросы на сервер не поступают, но оба процесса по-прежнему работают на 100%.
Я бегал lsof
на каждый процесс, и они дали мне около 9000 строк вывода (для меня это могло быть также греческим). Никакие другие процессы не ведут себя странно или ждут и т. Д.
Моя база данных находится на втором сервере. С помощью mytop
показывает два активных соединения MySQL с сервером apache, оба в состоянии "сна". Я убил один из этих потоков MySQL, и ни один из процессов на сервере Apache не изменился.
Этот сервер apache - один из двух, стоящих за простым балансировщиком нагрузки. Не знаю, может ли это быть связано.
Как я могу подтвердить, что проблема с apache связана с тем, что я вижу на сервере базы данных? И может ли это быть результатом хитрого вызова SQL или чего-то еще?
Изменить: обнаружил проблему. Это была проблема с кодом Magento. Функция изменения размера изображения не смогла открыть изображение из-за неправильного расширения (это был BMP с расширением jpg). Обработчик ошибок для этого снова вызвал изменение размера, и вуаля - цикл. Нашел это, сделав strace
о некорректном процессе apache.
Нашел проблему. Это была проблема с кодом Magento. Функция изменения размера изображения не смогла открыть изображение, потому что расширение было неправильным (это был BMP с расширением jpg). Обработчик ошибок для этого снова вызвал изменение размера, и вуаля - цикл. Обнаружил это, выполнив strace неправильно работающего процесса apache.
Возможно, ваш Apache устарел и уязвим для недавней уязвимости запроса диапазона, и кто-то или что-то сейчас его использует?