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

Я знаком с Docker, Rkt и LXD, но если бы у меня не было возможности установить все эти инструменты, каковы были бы основные механизмы, обеспечивающие изоляцию процессора, памяти и диска для определенного процесса?

CPU - я хочу сказать, что этим процессом можно использовать только 1 сокет из двух

Память - я не хочу, чтобы этот процесс использовал более 10 ГБ памяти

Диск - я не хочу, чтобы процесс использовал более 100 ГБ диска и имел видимость (ls не должен перечислять его) файлов, которые не были созданы этим процессом

Я думаю, что установка Docker, Rkt и чего-не очень тяжелого решения для чего-то базового, что я пытаюсь сделать

Является ли cgroups базовым API, к которому я должен подключиться, чтобы получить то, что мне нужно? Если это так, есть ли хорошая книга, чтобы узнать о CGroups

Я работаю на EC2 - RHEL и Ubuntu оба.

1 ответ

Смотрите man-страницу для cgroups(7) для ознакомления, полная документация интерфейса cgroup поддерживается в ядре linux:

Кроме того, в дистрибутиве с интерфейсом systemd и cgroup v2 функции cgroup должны использоваться через systemd, а не напрямую. Смотрите также справочную страницу для systemd.resource-control.

Для конкретной информации о распространении см.:

Быстрые ответы на ваши вопросы

Я хочу сказать, что этим процессом можно использовать только 1 сокет из двух

Это можно сделать через контроллер cpuset из cgroup v1 (как на RHEL 6, так и на RHEL 7).

Я не хочу, чтобы этот процесс использовал более 10 ГБ памяти

Смотрите контроллер памяти интерфейса cgroup v1 или MemoryLimit интерфейса управления ресурсами systemd.

Я не хочу, чтобы процесс использовал более 100 ГБ диска

Это вне зоны контроля cgroups, вместо этого используйте дисковые квоты.

иметь видимость (ls не должен перечислять это) файлов, которые не созданы этим процессом

Это выходит за пределы функциональности cgroups, используйте либо право доступа к файловой системе, пространства имен файловой системы, либо вариант сервиса PrivateTmp systemd, в зависимости от вашего варианта использования.

Другие вопросы по тегам