LINUX.ORG.RU
ФорумAdmin

[debian]Проблема подвисания процесса php

 


0

0

Здравствуйте. Арендовал VDS, развернули LAMP (Linux + Apache + PHP + Mysql) на Debian 5.0, переместили проекты, все вроде нормально заработало, но вдруг сервак стал подвисать. Поставил zabbix, начал анализировать ситуацию, оказалось, что в какой то момент времени загрузка проца подскакивает до 100% и далее, пока не перегрузишь, загрузка держится, сайты откликаются, но через какое то время сервак виснет. Причем никакого явного обоснования сразу не видно, трафик средний, mysql без нагрузки, апач так же практически на минмимуме, потому как переехали на новое железо, которое значительно больше сегодняшних потребностий, с заделом на будущее. В общем, стал смотреть top, и заметил такую вещь, что во время 100% загрузки в топе постоянно висит процесс PHP, причем помимо него другие процессы PHP появляются и отваливаются нормально, а один процесс постоянно висит. Помогает рестарт апача, он срубает этот процесс и дальше все нормально, загрузка на минимуме, может даже пару дней так держаться, затем опять возникает этот висящий процесс php, и т.д. Отмечу, что на прежнем серваке проблем не наблюдалось, там просто производительности не хватало, аптайм полгода без проблем. Вопросы: - Сталкивался ли кто с подобным? - Есть ли возможность проанализировать средствами ОС, что это процесс делает?


Сталкивался, но не с апачем, а с lighttpd. Проблему ни исследовать, ни исправить не удалось, ушло само так же, как и появилось. Из догадок: превышения лимита открытых файлов. Из рекомендаций: попробовать nginx+php-fpm.

post-factum ★★★★★
()
Ответ на: комментарий от Bers666

Спасибо за подсказку. Установил strace, запустил для подвисшего php процесса «strace -p 8000», выдалось «Process 8000 attached - interrupt to quit», и все, ничего больше не выводит, хотя процесс колбасит под 60-80%. Что это может означать? Причем сейчас таких процессов скопилось несколько штук, скрин терминала: http://savepic.ru/1335987.png. Попробовал к другому процессу (mysqld) подрубиться, там все нормально, постоянно выводит отладочную инфу.

wslava
() автор топика
Ответ на: комментарий от wslava

есть мысль что это вовсе и не php, а кака
последний писк моды заливка по ftp злого кода, запуск и удаление залитого бинарника

посмотрите логи ftp\ssh

hizel ★★★★★
()
Ответ на: комментарий от wslava

У тебя php как CGI? я вижу, он не из-под апачевого юзера выполняется.

Еще попробуй установить apache server-status (включи full status) и посмотри, какому запросу соответствуют эти процессы.

Bers666 ★★★★★
()
Ответ на: комментарий от Bers666

Да, как CGI. Честно говоря, этой опции никогда не придавал значения, по умолчанию PHP как CGI установлено, надо будет почитать.. server-status стоит, посмотрел, точно, там же Request есть, отлично, спасибо!

wslava
() автор топика

Правда написал уже скрипт для крона, срубающий php процессы старше 5 минут (как в таймауте php), теперь уже аптайм сутки без проблем. Сейчас еще пропишу status_info в лог скидывать по таким процессам.

wslava
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.