[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ограничить браузер хром через cgroups



> Однако, я в данной теме начинающий, мне нужно как для
> чайников: в файл такой-то написать то-то, посмотреть так-то …

Создать группу grp с контроллерами memory и blkio, принадлежащую
пользователю USER (именно имя, в номера оно не умеет), выставить
лимиты и запустить в ней chromium:

# cgcreate -a USER:USER -t USER:USER -g memory,blkio:grp

$ cgset -r memory.limit_in_bytes=512M -r memory.swappiness=0 -r
blkio.weight=1000 grp

$ cgexec -g memory,blkio:grp /usr/bin/chromium

Последний шаг автоматизируется: см. пункт 2.8.1 «Служба cgred» всё
того же федоровского руководства. Правда, запуск cgconfigparser
пришлось вырезать из /etc/init.d/cgred самостоятельно, потому что у
меня он так и не работает (как-то не так пытается создавать группы).
Пользуемся /etc/rc.local. А жаль, потому что он помог бы
автоматизировать и первые два шага.


> К нашей теме подходит пункт «3.7. Подсистема memory». Как я понял,
> нельзя полностью исключить своппинг, но можно поставить конкретные
> значения для свопа и памяти.

Ядро 3.16, цитирую документацию (Documentation/cgroups/memory.txt,
раздел 5.3 «swappiness»):

> Overrides /proc/sys/vm/swappiness for the particular group. The tunable
> in the root cgroup corresponds to the global swappiness setting.
>
> Please note that unlike during the global reclaim, limit reclaim
> enforces that 0 swappiness really prevents from any swapping even if
> there is a swap storage available. This might lead to memcg OOM killer
> if there are no file pages to reclaim.

Резюмирую: если выставить memory.swappiness в 0, своппинг для группы
будет действительно отключён. Видимо, в 2012 году это было не так.

Reply to: