Page 1 of 2

Ограничение нагрузки.

Posted: Thu Jan 15, 2015 5:02 am
by new_
Здравствуйте!
Существует ли возможность ограничить нагрузку на сервер стандартными средствами, при создании нового пользователя?
То есть что бы один "контуженый" пассажир не ронял весь сервер 1-им шибко-толстым скриптом.
Например создать несколько тарифов с разными квотами по нагрузке на ЦП, Ширину канала и прочие ограничения.

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 5:14 am
by skurudo
Стандартными средствами - никак. Можно ограничить трафик и дисковую квоту. Возможно такая штука появится в следующих версиях или в реселлерском модуле - пока не ясно.

Отсутствие такой возможность - к сожалению или к счастью, вопрос тонкий. Порой лимиты в панели (я сравниваю с isp) могут приводить к проблемам, а потом долгим поискам. Возможно имеет смысл выставить время выполнения скрипта поменьше или оптимизировать :)

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 7:49 am
by new_
бог с ними с ограничениями, но как тогда выявлять этого "пассажира"?
ведь в стандарте идут только общие нагрузки на ЦП и прочее, без разбивки по юззверам

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 7:58 am
by new_
ведь постоянно увеличивать мощности железа из за одного-двух "пассажиров" по крайней мере не разумно

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 8:48 am
by skurudo
new_ wrote:бог с ними с ограничениями, но как тогда выявлять этого "пассажира"?
ведь в стандарте идут только общие нагрузки на ЦП и прочее, без разбивки по юззверам
Здесь криминалисты могут посоветовать пару методов: по-проще и по-сложнее.

В первом случае в моменты пиковой нагрузки можно смотреть на server-status. Включить можно в настройках apache2 (/etc/apache2/apache2.conf)

Code: Select all

ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Deny from all
Allow from 127.0.0.1
Allow from localhost
</Location>
и здесь посмотреть:
/etc/apache2/mods-available/status.conf

Code: Select all

Listen 127.0.0.1:8081
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from localhost
</Location>
Выглядит вот так вот:
Image

Второй способ - установить apache2-mpm-itk и дописывать каждому пользователю - выполняться от конкретного пользователя. Естественно, ручной работы будет побольше. Скорее всего нужно будет какой-то отдельный шаблон монстрячить или править текущий. Как-то вот так:

Code: Select all

<VirtualHost *:8080>
 ServerName example.com
 DocumentRoot /path/to/web/root
 AssignUserId vhost-user vhost-group
</VirtualHost>
(это не инструкция есичо - перед копипастой нужно сурово подумать)

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 9:11 am
by new_
а можно картинку перезалить?
мне всего то и достаточно - что посмотреть какой файл вызывает максимальные нагрузки(например его расположение), и по этим признакам вычислить негодяя.
второй вариант отпадает - дабы написать что то свое руки к сожалению не заточены.

п.с. я уже сурово думаю >:)

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 10:07 am
by skurudo
new_ wrote:а можно картинку перезалить?
Там же ж ссылка на более крупную картинку - http://cdn.abcd.black/image/1x
Домены и адреса замазаны. Для вашей задачи - домен и путь видны.

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 10:31 am
by new_
Все! данкешон! Странно но картинка открылась только через анонимайзер О_о

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 2:22 pm
by imperio
Функционал с ограничением ресурсов (ram, cpu) появится в коммерческой версии

Re: Ограничение нагрузки.

Posted: Thu Jan 15, 2015 4:32 pm
by Deeryo
Но ведь по дефолту ставится mod_ruid2, поэтому itk не нежен, можно просто смотреть top. Можно ограничить кол-во соединений косвенно в my.cnf опцией max_user_connections=20 и глобально в конфиге араche MaxClients 100 (или меньше на слабом сервере).