- apache mod_php повисают скрипты, PavelR, 20:02 , 11-Мрт-11 (1)
> Здравствуйте. > При запуске скрипта через cron каждую минуту следующим образом: wget "http://site.ru/index.php?param=param1" > Экземпляры apache (httpd), которые обрабатывают этот запрос начинают повисать. Точнее > не прекращают свою работу даже если убить процесс wget. Они так > и висят в памяти, а скрипты продолжают работать.процессы апача и не должны завершаться. Изучите, как работает апач. На основании чего высказывается предположение, что скрипты продолжают работать ? В курсе ли вы про наличие mod_status ? > Процессы накапливаются, кушают всю оперативку и сервер apache перестаёт отвечать. печаль... > На сколько я понял по информации на эту тему проблема в mod_php > и том, что скрипты не выдают никакого контента пользователю и не > расходуют ресурсы процессора и поэтому не попадают ни под один лимит. так не расходуют ресурсы процессора или продолжают работать ? :-) > Что делать? Как застраховать сервер от таких скриптов? max_execution_time = 30; в php.ini возможно надо блокировать функцию set_time_limit(0); я не в курсе.
- apache mod_php повисают скрипты, Frei, 21:22 , 11-Мрт-11 (2)
> процессы апача и не должны завершаться. Изучите, как работает апач. > На основании чего высказывается предположение, что скрипты продолжают работать ? > В курсе ли вы про наличие mod_status ?Могу конечно ошибаться, но количество процессов апач всё же изменяется, иначе не нужны были бы лимиты на максимальное и минимальное количество процессов. Предположение стало фактом после того как без дополнительных запусков скриптов те, что висели в памяти и не завершались стали выдавать результаты в БД. Т.е. скрипт должен уже завершиться, а он всё ещё работает и выдаёт результаты в БД. Да, конечно в курсе. Вот как раз по mod_status и видно что процессы повисли на стадии выдачи результатов пользователю (W) и видно что именно те, которые работали со скриптом. И там же видно что процессы копятся. >> На сколько я понял по информации на эту тему проблема в mod_php >> и том, что скрипты не выдают никакого контента пользователю и не >> расходуют ресурсы процессора и поэтому не попадают ни под один лимит. > так не расходуют ресурсы процессора или продолжают работать ? :-) Расходуют оперативу, за счёт чего всё и перестаёт работать. А вот ресурсов процессора им нужно катастрофически мало и поэтому max_execution_time о котором вы пишете ниже не срабатывает. Точнее срабатывает, но на много позднее чем нужно. max_execution_time - это не общее время работы скрипта, на сколько я помню, а именно потраченное процессорное время. В любом случае этот лимит стоит и толку нет. >> Что делать? Как застраховать сервер от таких скриптов? > max_execution_time = 30; в php.ini > возможно надо блокировать функцию set_time_limit(0); я не в курсе.
Отключил disable_functions="set_time_limit". Проверю и отпишусь. Но, что то мне подсказывает что такой ход не поможет так как эта функция в данном скрипте не используется :)
- apache mod_php повисают скрипты, PavelR, 21:26 , 11-Мрт-11 (3)
я так понял, что скрипты - ваши ?1) скрипты обучить блокировкам. Если один процесс выполняет задачу, другой процесс как правило не нужен, или даже вреден. 2) Скрипты убрать из запуска как mod_php, запускать либо кроном напрямую, либо даймоном системы. Ибо крива архитектура.
- apache mod_php повисают скрипты, Frei, 21:30 , 11-Мрт-11 (5)
> я так понял, что скрипты - ваши ? > 1) скрипты обучить блокировкам. Если один процесс выполняет задачу, другой процесс как > правило не нужен, или даже вреден. > 2) Скрипты убрать из запуска как mod_php, запускать либо кроном напрямую, либо > даймоном системы. Ибо крива архитектура.Скрипты писал не я. Обучить то обучим. Второй и третий и т.д. скрипты нужны, они параллельно работают для увеличения быстродействия Тут вопрос в другом - как вообще от этого застраховаться? А запускать напрямую не удобно, да и в этом случае всё равно их никак не ограничить. При таком варианте скрипты будут работать столько, сколько захочет разработчик - опять же никак не подстраховаться от повисаний и слишком долгой работы. И интересно как такая проблема на хостингах решается? Я сейчас куда нибудь эти скрипты закину на хостинг и буду вешать там постоянно апач. ДДОС получается :)
- apache mod_php повисают скрипты, PavelR, 22:10 , 11-Мрт-11 (6)
>[оверквотинг удален] >> 2) Скрипты убрать из запуска как mod_php, запускать либо кроном напрямую, либо >> даймоном системы. Ибо крива архитектура. > Скрипты писал не я. Обучить то обучим. > Второй и третий и т.д. скрипты нужны, они параллельно работают для увеличения > быстродействия > Тут вопрос в другом - как вообще от этого застраховаться? > А запускать напрямую не удобно, да и в этом случае всё равно > их никак не ограничить. При таком варианте скрипты будут работать столько, > сколько захочет разработчик - опять же никак не подстраховаться от повисаний > и слишком долгой работы.Вот так вот вроде можно. http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidbu... <? for($i=0;$i<60;$i++) { sleep(10); print $i; print " "; } ?> mod_php - выводит полный результат через 10 минут. mod_fcgid - таймаутится, помоему через 40 секунд, но остается процесс в системе... Грустно. тут http://forum.nginx.org/read.php?25,30727,31964 говорят что php-fpm умеет ограничивать подобное. =) > И интересно как такая проблема на хостингах решается? Я сейчас куда нибудь > эти скрипты закину на хостинг и буду вешать там постоянно апач. > ДДОС получается :)
- apache mod_php повисают скрипты, Frei, 20:58 , 14-Мрт-11 (7)
>[оверквотинг удален] > <? > for($i=0;$i<60;$i++) { > sleep(10); > print $i; > print " > "; > } > ?> > mod_php - выводит полный результат через 10 минут. mod_fcgid - таймаутится, помоему > через 40 секунд, но остается процесс в системе... Грустно.мод_пхп и через 10 минут ничего не выводит. Процессы всё равно висят. Проблему собственно решили пока просто отключением скрипта по собственному желанию. Сделали exit. > тут http://forum.nginx.org/read.php?25,30727,31964 говорят что php-fpm умеет ограничивать > подобное. =)
Вроде да, но с этим зверем я ещё не сталкивался. Да и чёт народ пишет что на офф сайте нет информации по прикручиванию к апач. Сам ещё не посмотрел. Спасибо за ссылку на досуге попробую прикрутить, чтобы проверить. Потом отпишусь.
- apache mod_php повисают скрипты, Frei, 21:26 , 11-Мрт-11 (4)
> Отключил disable_functions="set_time_limit". Проверю и отпишусь. Но, что то мне подсказывает > что такой ход не поможет так как эта функция в данном > скрипте не используется :) Не помогло.
|