Como configuro o LXC para permitir o uso de SCHED_RR em um contêiner?

2

Alguma idéia de como eu posso configurar o LXC / cgroups, para permitir o uso de SCHED_RR para aplicações em um container?

Na internet, tenho visto mencionar a desmontagem do cpu-cgroup, eu tentei isso manualmente (executando umount no cpu cgroup) que não parecia ajudar.

Alguma idéia de como desmembrar persistentemente um cgroup? No Fedora 20.

A desmontagem, cpu cgroup, é o método correto para permitir que aplicativos de contêiner usem o SCHED_RR?

Obrigado

    
por Henk 22.09.2014 / 07:04

2 respostas

1

Acredito que, além do CAP_SYS_NICE, você também precisará do CAP_SYS_ADMIN. Eu não posso dizer com certeza, mas o kernel tem uma verificação de ioprio () que requer CAP_SYS_ADMIN & CAP_SYS_NICE para uma prioridade "em tempo real" como SCHED_RR.

Veja link

(Permissões necessárias para definir prioridades de E / S)

Eu tive o mesmo problema com qualquer chamada sched_setsched () retornando um EPERM quando tento alterar a prioridade de agendamento dentro de um contêiner. Também estou recebendo erro EPERM quando tento a mesma alteração do host para um processo no contêiner.

EDIT: Na verdade, estou errado sobre isso. Eu descubro como obter o SCHED_RR para trabalhar na minha configuração. A chamada para sched_setscheduler () estava errando com EPERM porque eu não tinha definido um orçamento em tempo real na pasta cgroups.

Control Group policy does not allow for a real-time scheduling policy to be set without allocating a run-time budget, which is not set by the provided configuration.

link

    
por 30.09.2014 / 22:56
0

Lembre-se de que normalmente os contêineres LXC eliminam recursos na inicialização. Você precisa, pelo menos, permitir CAP_SYS_NICE no contêiner. Esse recurso permite chamar sched_setscheduler() , que é a chamada que você precisa para definir SCHED_RR.

Um exemplo para a configuração de referência do LXC:

lxc.cap.keep = sys_nice

E é claro que seus aplicativos também devem ter CAP_SYS_NICE (ou serem executados como root, caso em que eles já terão).

    
por 22.09.2014 / 13:48