- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
Существует такая проблема, если у пользователя в скриптах есть какие то не доработки, например грабинг контента без установки лимитов на подключения,
или подобные конструкции while(1) {код; sleep(x);}
то max_execution_time не играет роли, так как он ен распространяется на такие системные вызовы как подключения или ожидания сокетов, залоченных файлов и так далее...
Получается что рано или позно процессы такого пользователя зависают и висят N-ое время...
Как быть в таких случаях? я так понимаю надо смотреть в сторону системных лимитов ulimit ??
Т.е. посути мне нужно установить максимальное время работы процесса до 3х минут, и не возниклит ли при этом проблема при использовании mod_itk?
Или может есть другие способы бороться с этим?
RLimitCPU по идее должны чилды наследовать.
Если я не ошибаюсь, то RLimitCPU ограничивает время использования процессора, а не время жизни процесса.
Это разные вещи, если процессор находится в ожидании, то он не используется, примеры когда это происходит я описывал выше. Поправьте конечно если я не не прав.
Как быть в таких случаях? я так понимаю надо смотреть в сторону системных лимитов ulimit ??
Правильно
Десять ulimitов
Если я не ошибаюсь, то RLimitCPU ограничивает время использования процессора, а не время жизни процесса.
Это разные вещи, если процессор находится в ожидании, то он не используется, примеры когда это происходит я описывал выше. Поправьте конечно если я не не прав.
Правильно понимаете. И ulimit'ы тоже, будь их и десять (они используют те же функции rlimit, что и RLimitCPU и его друзья в апаче).
Кстати, с какого боку RLimitCPU вообще у Вас будет работать для воркеров? Это (и другие аналогичные директивы) - ограничение для CGI-скриптов, которые плодят Ваши воркеры, а не для них самих.
Чем Вам мешают эти ждущие процессы? Упираетесь в MaxClients или что-то подобное? Тогда правьте код - это правильное решение. А пока, например, выставьте ограничения на число соединений для соответствующих location.
Кстати, с какого боку RLimitCPU вообще у Вас будет работать для воркеров?
mpm_itk,
Dimanych, ограничте количество процессов для проблемного виртуального хоста, пользователь быстрее сам разберётся
Значит решения практичного нет, дело в том что кол-во процессов и так уже ограниченно благодаря ITK, после достижения лимита, сайт не открывается => 503
Проблемы у всех разные в скриптах, как правило ламер не разберётся, у него первые мысли, виноват хостинг :)
Ладно я уже придумал решение, в качестве перебора всех процессов и убийством юзерских httpd которые висят очень давно, что-то сразу не додумался, да и надеялся на более красивое решение :)
PS. в апаче если PHP как модуль, вроде есть лимит по времени после которого убивается чилд, но он видимо не работает на itk.
Кстати, с какого боку RLimitCPU вообще у Вас будет работать для воркеров?
В таком виде - не будет
Для этого есть иные пути
Сорри за офф топ,Иной =) ..
В таком виде - не будет
Для этого есть иные пути
А в каком виде будет? Документация апача таких "путей" использования директивы RLimitCPU не знает. Вы новый апач написали?
в апаче если PHP как модуль, вроде есть лимит по времени после которого убивается чилд, но он видимо не работает на itk.
Можно конкретней?
А в каком виде будет? Документация апача таких "путей" использования директивы RLimitCPU не знает. Вы новый апач написали?
Нет, mpm-itk + /etc/security/limits.conf
Знание системы позволяет избежать написания новых велосипедов 😂