Product SiteDocumentation Site

2.9.2. Comportamento di processo nel Control Group di Root

Alcune opzioni di configurazione di blkio e cpu influenzano i processi (task), in esecuzione nel cgroup di root in maniera differente che nei sottogruppi. Si consideri il seguente esempio:
  1. Creare due sottogruppi sotto il gruppo root: /rootgroup/red/ e /rootgroup/blue/
  2. In ciascun sottogruppo e nel gruppo radice, definire l'opzione di configurazione cpu.shares ed impostare il valore 1.
Nello scenario sopra configurato, un processo posizionato in ciascun gruppo (cioè, un task in /rootgroup/tasks, /rootgroup/red/tasks e /rootgroup/blue/tasks), finisce col consumare 33.33% di CPU:
/rootgroup/ process:      33.33%
/rootgroup/blue/ process: 33.33%
/rootgroup/red/ process:  33.33%
Ogni altro processo posizionato nei sottogruppi blue e red condivide il 33.33% di CPU assegnato al sottogruppo.
Tuttavia, processi multipli posizionati nel gruppo di root causano la risorsa di CPU ad essere suddivisa per processo piuttosto che per gruppo. Per esempio, se /rootgroup/ contiene tre processi, /rootgroup/red/ contiene un processo e /rootgroup/blue/ contiene un processo, e l'opzione cpu.shares è impostata ad 1 in tutti i gruppi, la risorsa CPU è suddivisa come segue:
/rootgroup/ processes:    20% + 20% + 20%
/rootgroup/blue/ process: 20%
/rootgroup/red/ process:  20%
Quindi, è consigliabile spostare tutti i processi dal gruppo root ad uno specifico sottogruppo quando si usano le opzioni di configurazione di blkio e cpu, che suddividono una risorsa disponibile in base al peso o una condivisione (per esempio, cpu.shares o blkio.weight). Per spostare tutte i task dal gruppo root in uno specifico sottogruppo, si può usare il seguente comando:
rootgroup]# for i in `cat tasks`; do echo $i > red/tasks; done