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