LINUX.ORG.RU
ФорумAdmin

cgroups попытки ограничить ресурсы

 , , ,


2

3

Добрый день,

Вторые сутки бьюсь над проблемой ограничения ресурсов, и пока не уверен что достиг того что надо. Буду рад, если направите в правильное русло.

Суть задачи. N пользователей заходят на машину под CentOS 6.4 x64 и запускают любую из 3 программ (prog1,prog2,prog3). Я очень хочу чтобы каждому юзеру под нужды этой программы выделялось 256M RAM (+256M swap при необходимости), ну и процессорной мощности чуть меньше (но тут вообще сферически-эмпирический подход)

Итак, в /etc/cgconfig.conf пишу

group prog_rules {
        cpuacct {
                cpuacct.usage="0";
        }
        cpu {
                cpu.rt_period_us=5000000;
                cpu.rt_runtime_us=90000;
                cpu.shares=80;
        }
        memory {
                memory.limit_in_bytes="256M";
                memory.memsw.limit_in_bytes="512M";
                memory.swappiness="20";
                memory.use_hierarchy="1";
        }
}

в /etc/cgrules.conf первое что пришло в голову это

*:prog1 cpu,memory,cpuacct  prog_rules/
*:prog2 cpu,memory,cpuacct  prog_rules/
*:prog3 cpu,memory,cpuacct  prog_rules/

но сильно показалось, что 256M на программу стали делиться между всеми пользователями. Т.е. user1 запустил prog1 - получил 256М, user2 запустил prog1 - теперь на каждого по 128М, user3 запустил prog1 - теперь 256 делим уже на трех.. Это категорически не подходит.

Решил описать каждого юзера (думаю, это вообще ошибочный путь, ибо пользователей не мало. Идея опичать группы @usergroup:progN cpu,memory.. кажется логичной, но боюсь что лимит будут делиться опять на всех юзеров пропорционально..)

user1:prog1 cpu,memory,cpuacct  prog_rules/
user1:prog2 cpu,memory,cpuacct  prog_rules/
user1:prog3 cpu,memory,cpuacct  prog_rules/

user2:prog1 cpu,memory,cpuacct  prog_rules/
user2:prog2 cpu,memory,cpuacct  prog_rules/
user2:prog3 cpu,memory,cpuacct  prog_rules/

user3:prog1 cpu,memory,cpuacct  prog_rules/
user3:prog2 cpu,memory,cpuacct  prog_rules/
user3:prog3 cpu,memory,cpuacct  prog_rules/

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

Может я чтото делаю не так?


тупые пользователи умудряются заставить программы работать на пределе всех лимитов

не всегда пользователи виноваты, ага... тема интересная, добавил в избранное

amazpyel ★★★
()

Да. Ты не используешь systemd

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