J'ai 3 processus sur une machine monocœur. Chaque processus est exactement le même et brûle le processeur aussi vite qu'il le peut (boucle serrée). Deux d'entre eux ( Aet B) sont lancés avec cgexec dans des groupes séparés avec des partages définis sur 512 et 512. Le troisième ( C) est lancé régulièrement, pas avec cgexec.
Une fois que tout est opérationnel, Cobtient 66% du processeur Aet se Bdivise à 33%. Si je tue Calors A, Bj'obtiens 50% chacun (comme prévu).
Pourquoi Cobtient-on 66%? Je m'attendais à 33% chacun dans ce scénario, ou peut-être 50% (C), 25% (A) et 25% (B). 66% va Cne fonctionne pas, peu importe comment je fais les calculs.
En général, je veux comprendre comment les processus lancés sans cgexecinteragir avec les processus lancés avec cgexecen matière de partage de ressources (CPU en particulier, mais une réponse plus générale serait appréciée si elle n'est pas trop complexe).
topet je pense qu'ils ont été démarrés assez simplement à partir d'une invite de commande: cgexec -g cpu:foo myprogramet ./myprogram. Cela fait un moment donc je ne m'en souviens pas avec certitude.
cpu.sharesest une option de configuration très particulière; Je recommande de diviser les choses par CPU si possible en utilisant à la cpuset.cpusplace.