systemd vs cgroups для изоляции ресурсов пользовательской программой?
Окружение: рабочий стол kubuntu 17.10.1
Ближайшая цель: бежать chrome
таким образом, чтобы ограничить его максимальное потребление памяти.
Текущий обходной путь: я положил следующее в /usr/local/bin/cchrome
:
#!/bin/sh
sudo mkdir -p /sys/fs/cgroup/memory/chrome
sudo chown -R ji /sys/fs/cgroup/memory/chrome
echo 8G > /sys/fs/cgroup/memory/chrome/memory.limit_in_bytes
exec cgexec -g memory:chrome google-chrome
Затем я редактирую меню приложений, чтобы создать запись под названием cchrome, и все отлично! Если бы я был менее ленив, я бы даже создал cgroup при запуске, чтобы мне не пришлось вызывать sudo в скрипте.
Это работает, но это некрасиво. По данным TFM (man cgrules.conf
а также man cgconfig.conf
), Я должен иметь возможность настроить все так, чтобы при запуске chrome он работал в своей собственной группе. Однако эти файлы не существуют на настольном компьютере 17.10 или сервере LTS 16.04. AIUI, systemd имеет собственное управление cgroup.
Я не смог найти никакой документации о том, как это сделать, и каждый поисковый запрос Google по этой теме либо о каком-то обходном пути, либо не работает, либо о каком-то другом дистрибутиве Linux.