mod_itk - зависшие процессы, как быть?

12
D
На сайте с 05.06.2007
Offline
155
2096

Всем привет!

Существует такая проблема, если у пользователя в скриптах есть какие то не доработки, например грабинг контента без установки лимитов на подключения,

или подобные конструкции while(1) {код; sleep(x);}

то max_execution_time не играет роли, так как он ен распространяется на такие системные вызовы как подключения или ожидания сокетов, залоченных файлов и так далее...

Получается что рано или позно процессы такого пользователя зависают и висят N-ое время...

Как быть в таких случаях? я так понимаю надо смотреть в сторону системных лимитов ulimit ??

Т.е. посути мне нужно установить максимальное время работы процесса до 3х минут, и не возниклит ли при этом проблема при использовании mod_itk?

Или может есть другие способы бороться с этим?

Написал не мало шедевров ;)
esetnod
На сайте с 16.07.2009
Offline
134
#1

RLimitCPU по идее должны чилды наследовать.

Быстрый хостинг на SSD от $0.99 (http://just-hosting.ru/) | OpenVZ (http://just-hosting.ru/vds.html) и KVM (http://just-hosting.ru/vds-kvm.html) VDS от $7.95
D
На сайте с 05.06.2007
Offline
155
#2

Если я не ошибаюсь, то RLimitCPU ограничивает время использования процессора, а не время жизни процесса.

Это разные вещи, если процессор находится в ожидании, то он не используется, примеры когда это происходит я описывал выше. Поправьте конечно если я не не прав.

Andreyka
На сайте с 19.02.2005
Offline
822
#3
Dimanych:

Как быть в таких случаях? я так понимаю надо смотреть в сторону системных лимитов ulimit ??

Правильно

Десять ulimitов

Не стоит плодить сущности без необходимости
M
На сайте с 16.09.2009
Offline
278
#4
Dimanych:
Если я не ошибаюсь, то RLimitCPU ограничивает время использования процессора, а не время жизни процесса.
Это разные вещи, если процессор находится в ожидании, то он не используется, примеры когда это происходит я описывал выше. Поправьте конечно если я не не прав.

Правильно понимаете. И ulimit'ы тоже, будь их и десять (они используют те же функции rlimit, что и RLimitCPU и его друзья в апаче).

Кстати, с какого боку RLimitCPU вообще у Вас будет работать для воркеров? Это (и другие аналогичные директивы) - ограничение для CGI-скриптов, которые плодят Ваши воркеры, а не для них самих.

Чем Вам мешают эти ждущие процессы? Упираетесь в MaxClients или что-то подобное? Тогда правьте код - это правильное решение. А пока, например, выставьте ограничения на число соединений для соответствующих location.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Zaqwr
На сайте с 08.08.2007
Offline
111
#5
myhand:
Кстати, с какого боку RLimitCPU вообще у Вас будет работать для воркеров?

mpm_itk,

Dimanych, ограничте количество процессов для проблемного виртуального хоста, пользователь быстрее сам разберётся

Администрирование, Linux, Cisco, Juniper
D
На сайте с 05.06.2007
Offline
155
#6

Значит решения практичного нет, дело в том что кол-во процессов и так уже ограниченно благодаря ITK, после достижения лимита, сайт не открывается => 503

Проблемы у всех разные в скриптах, как правило ламер не разберётся, у него первые мысли, виноват хостинг :)

Ладно я уже придумал решение, в качестве перебора всех процессов и убийством юзерских httpd которые висят очень давно, что-то сразу не додумался, да и надеялся на более красивое решение :)

PS. в апаче если PHP как модуль, вроде есть лимит по времени после которого убивается чилд, но он видимо не работает на itk.

Andreyka
На сайте с 19.02.2005
Offline
822
#7
myhand:

Кстати, с какого боку RLimitCPU вообще у Вас будет работать для воркеров?

В таком виде - не будет

Для этого есть иные пути

M
На сайте с 01.12.2009
Offline
235
#8

Сорри за офф топ,Иной =) ..

Администратор Linux,Freebsd. построения крупных проектов.
M
На сайте с 16.09.2009
Offline
278
#9
Andreyka:
В таком виде - не будет
Для этого есть иные пути

А в каком виде будет? Документация апача таких "путей" использования директивы RLimitCPU не знает. Вы новый апач написали?

Dimanych:
в апаче если PHP как модуль, вроде есть лимит по времени после которого убивается чилд, но он видимо не работает на itk.

Можно конкретней?

Andreyka
На сайте с 19.02.2005
Offline
822
#10
myhand:
А в каком виде будет? Документация апача таких "путей" использования директивы RLimitCPU не знает. Вы новый апач написали?

Нет, mpm-itk + /etc/security/limits.conf

Знание системы позволяет избежать написания новых велосипедов 😂

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий