Назад | Перейти на главную страницу

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

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

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

Есть идеи, как я постоянно размонтирую cgroup? В Fedora 20.

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

Спасибо

Я считаю, что помимо 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, и в этом случае они уже будут).