Как мне настроить LXC, чтобы разрешить использование SCHED_RR в контейнере?

Любые идеи о том, как я могу настроить LXC/cgroups, чтобы разрешить использование SCHED_RR для приложений в контейнере?

В интернете я видел упоминание о размонтировании cpu-cgroup, я пробовал это вручную (запуск umount на cpu cgroup), что, похоже, не помогло.

Любые идеи о том, как я постоянно размонтирую cgroup? На Федоре 20.

Является ли размонтирование, cpu cgroup, правильным методом, позволяющим приложениям-контейнерам использовать SCHED_RR?

Спасибо

2 ответа

Я считаю, что в дополнение к CAP_SYS_NICE вам также понадобится CAP_SYS_ADMIN. Я не могу сказать наверняка, но в ядре есть проверка для ioprio(), которая требует CAP_SYS_ADMIN && CAP_SYS_NICE для приоритета в реальном времени, такого как SCHED_RR.

Смотрите http://linux.die.net/man/2/ioprio_set

(Требуемые разрешения для установки приоритетов ввода / вывода)

Я столкнулся с той же проблемой с любыми вызовами sched_setsched(), возвращающими EPERM, когда я пытаюсь изменить приоритет планирования в контейнере. Я также получаю сообщение об ошибке EPERM, когда я пытаюсь сделать то же самое изменение с хоста на процесс в контейнере.

РЕДАКТИРОВАТЬ: На самом деле, я ошибаюсь по этому поводу. Я выясняю, как заставить SCHED_RR работать для моей настройки. Вызов sched_setscheduler() был ошибочным с EPERM, потому что я не установил бюджет в реальном времени в папке cgroups.

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

https://www.novell.com/support/kb/doc.php?id=7012851

Помните, что обычно контейнеры LXC сбрасывают возможности при запуске. Вы должны, по крайней мере, разрешить CAP_SYS_NICE в контейнере. Эта возможность позволяет звонить sched_setscheduler() какой вызов вам нужно установить SCHED_RR.

Пример для справки конфигурации LXC:

lxc.cap.keep = sys_nice

И, конечно, ваши приложения также должны иметь CAP_SYS_NICE (или запускаться от имени пользователя root, и в этом случае они уже будут).

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