Назад | Перейти на главную страницу

apache2 mod-php cpu 100% в процессе

У меня есть VPS-сервер Debian с Apache 2.4.10 mod-php. Сервер запускается нормально, но через некоторое время я получаю 100% процессор в одном из процессов www-data, и веб-сервер становится недоступным.

Я попытался strace на этом процессе, и я получил бесконечный цикл этих строк:

poll([{fd=93, events=POLLIN}], 1, 3000) = 1 ([{fd=93, revents=POLLHUP}])
read(93, "", 13160)

Затем я попробовал lsof и получил это:

COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF       NODE NAME
apache2 1134 www-data   93r  FIFO    0,8      0t0 3176528027 pipe

Что может вызвать проблему? Когда я перезапускаю apache, через некоторое время у меня такое же поведение.

Некоторые сценарии PHP на вашем сервере используют все время процессора. Возможно у вас бесконечный цикл. Информация из strace сообщает, что скрипт опрашивает некоторый файловый дескриптор канала. Возможно, другой конец этого канала был закрыт, и ваш скрипт все еще пытается что-то из него прочитать (необработанная ошибка).

Если вы не знаете о скриптах такого типа на вашем сервере, проверьте, нет ли других скриптов, которые могли быть кем-то «введены» на ваш сервер. Проверьте журналы Apache, чтобы узнать, какие файлы были открыты удаленными клиентами.