Tengo 3 procesos en una máquina de un solo núcleo. Cada proceso es exactamente el mismo y quema la CPU tan rápido como puede (circuito cerrado). Dos de ellos ( Ay B) se lanzan con cgexec en grupos separados con acciones establecidas en 512 y 512. El tercero ( C) se lanza regularmente, no con cgexec.
Una vez que todo está en funcionamiento, Cobtiene el 66% de la CPU mientras se divide Ay el B33%. Si mato Centonces Ay Bobtengo el 50% cada uno (como se esperaba).
¿Por qué Cobtiene el 66%? Hubiera esperado 33% cada uno en este escenario, o quizás 50% (C), 25% (A) y 25% (B). Sin Cembargo, el 66% que va no funciona, no importa cómo haga los cálculos.
En general, quiero entender cómo los procesos iniciados sin cgexecinteractuar con los procesos iniciados cgexeccuando se trata de compartir recursos (CPU en particular, pero se agradecería una respuesta más general si no es demasiado complejo).
topy creo que se iniciaron simplemente desde un símbolo del sistema: cgexec -g cpu:foo myprogramy ./myprogram. Ha pasado un tiempo, así que no recuerdo con certeza.
cpu.shareses una opción de configuración muy peculiar; Recomiendo dividir las cosas por CPU si es posible usando en su cpuset.cpuslugar.