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

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



В сообщении от [Чт 2015-04-30 00:23 +0500]
Азат Рафиков <zloklun@gmail.com> пишет:
> Создать группу 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. А жаль, потому что он помог бы
> автоматизировать и первые два шага.

Респект. Всё работает, только на первом шаге были грабли, оказывается в
Debian по умолчанию не смонтирована подсистема memory (все остальные
есть, кроме неё) и контроль свопа. Нужно указать параметры для ядра в
GRUB. В файле '/etc/default/grub' строчка 'GRUB_CMDLINE_LINUX_DEFAULT'
должна выглядеть так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1"

потом 'update-grub2' и перезагрузка, теперь все подсистемы смонтированы,
можно проверить 'df -a -t cgroup'. После того как ваша группа сработала,
я сделал на основе неё свой конфиг [1] с помощью cgsnapshot (см. пункт
2.10. Создание файла /etc/cgconfig.conf). 

По автоматизации. 
По федоринскому руководству должен быть специальный юнит который грузит
конфиг, наверное в debian забыли это сделать, а пока добавил команду
'cgconfigparser -l /etc/cgconfig.conf' в свой скрипт автозагрузки. Но
мне кажется есть еще варианты, просто я не до конца прочитал
руководство. 

По хрому.
Хром не может нормально работать с полгига оперативки, только гигабайт
не меньше. Поэтому сделал две группы, одна со свопом, другая без. Если
запускать без свопа (кстати вы правы, для групп можно отключать своп
совсем), то хром работает шустро, но убиваются вкладки (пишет во
вкладках «Он улетел! Но он обещал вернуться…»). Со свопом вкладок можно
открыть больше, но немного подвисает из-за своппинга. 

Моя задача решена. В целом, можно сказать что cgroups технология
перспективная, со временем обрастет различными обертками с GUI и
веб-интерфейсом, уже сейчас можно придумать массу применений не только
на серверах, но и на пользовательских машинах.

[1] http://paste.ubuntu.com/10949461/

-- 
http://google.com/+РусланКоротаев;


Reply to: