Eu tenho 3 processos em uma máquina de núcleo único. Cada processo é exatamente o mesmo e queima a CPU o mais rápido possível (loop apertado). Dois deles ( Ae B) são lançados com o cgexec em grupos separados com compartilhamentos definidos para 512 e 512. O terceiro ( C) é iniciado regularmente, não com o cgexec.
Uma vez que todos estejam em operação, Cobtém 66% da CPU Ae Bdividem 33%. Se eu matar Cem seguida, Ae Bobter 50% de cada um (como esperado).
Por que Cobtém 66%? Eu teria esperado 33% cada neste cenário, ou talvez 50% (C), 25% (A) e 25% (B). 66% Cnão dão certo, não importa como eu faça as contas.
Em geral, quero entender como os processos iniciados sem cgexecinteragem com os processos iniciados cgexecquando se trata de compartilhamento de recursos (CPU em particular, mas uma resposta mais geral seria apreciada se não fosse muito complexo).
tope acredito que eles foram iniciados de maneira bastante simples a partir de um prompt de comando: cgexec -g cpu:foo myprograme ./myprogram. Já faz um tempo, então não me lembro com certeza.
cpu.sharesé uma opção de configuração muito peculiar; Eu recomendo dividir as coisas por CPUs, se possível usando em seu cpuset.cpuslugar.