LINUX.ORG.RU
ФорумAdmin

Apache не завершает процессы по таймауту


0

0

Скажите, почему в server-status под буквой «W» висят процесы с «SS» более 1000 Это происходит в скриптах (не во всех, иногда в одном, иногда в другом), в которых используется функция fsockopen С какой стороны искть решение проблемы?

Никто не сталкивался что-ли?

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

Дай угадаю, у тебя mod_php :).

писать нормальные скрипты
Выставить лимиты на время выполнения в php(редко помогает, см доки)
Ограничить системными лимитами.
Написать скрипт который бы такие процессы прибивал

А лучше не использовать пых-пых.

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

Выставляешь лимиты по процу через pam_limits или /etc/limits.conf(или login.conf, уже не помню) слушающему апачу. Этот лимит при форке унаследуют все его дети. Тока тут есть свои нюансы, rc-скрипт должен уметь применять эти лимиты на апач(возможно, придётся допиливать). С ходу даже нашёлся в гугле патч для start-stop-daemon(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=302079), но я его не проверял.

Т.к. слушающий апач жрёт очень мало ресурсов то в лимиты не упрётся если будешь его перезапускать хотя бы раз неделю.

Но проще всего такие процессы по крону раз в пару минут отстреливать.

А самый правильный вариант не писать и не использовать говнокод который это вызывает.

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

Код то нрмальный, это происходит когда удаленный сервер висит. На хостинге все было хорошо, а потом взяла VPS и начались проблемы одна, за другой ((( А где можно почитать, о том как кроном бить процессы, ток на русском языке?

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

нормальный код должен отслеживать такие ситуации. Хоть через sigalarm. А вот убивание таких процессов по крону это костыль. Так что лучше допиши скрипты.

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