关于如何configurationLXC / cgroup的任何想法,以允许在容器中使用SCHED_RR应用程序?
在互联网上,我已经看到提到卸载cpu-cgroup,我已经尝试过,手动(在cpu cgroup上运行umount),似乎没有帮助。
任何想法如何持续卸载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
(设置I / O优先级所需的权限)
我遇到了同样的问题,当我尝试改变一个容器内的调度优先级的任何sched_setsched()调用返回一个EPERM。 当我尝试从主机到容器中的进程的相同更改时,我也遇到EPERM错误。
编辑:其实,我错了。 我弄清楚如何让SCHED_RR为我的设置工作。 调用sched_setscheduler()与EPERM错误,因为我没有在cgroups文件夹中设置实时预算。
控制组策略不允许设置实时调度策略,而不分配运行时预算(不是由所提供的configuration设置的)。
请记住,通常LXC容器在启动时会丢失function。 您至less需要在容器中允许CAP_SYS_NICE。 此function允许调用sched_setscheduler() ,这是您需要设置SCHED_RR的调用。
一个参考LXCconfiguration的例子:
lxc.cap.keep = sys_nice
当然,您的应用程序也必须具有CAP_SYS_NICE(或以root身份运行,在这种情况下,它们已经可以)。