Product SiteDocumentation Site

2.2. Creazione di una gerarchia e collegamento dei sottosistemi

Effetti su un sistema in esecuzione

Le seguenti istruzioni, usate per il metodo di creazione di una nuova gerarchia e di collegamento dei sottosistemi alla stessa, assumono che i cgroups non siano già stati configurati sul sistema. In tal caso le istruzioni non avranno alcun effetto sul normale funzionamento del sistema. Tuttavia, modificando i parametri regolabili in un cgroup con task, sarà possibile influenzare immediatamente i task medesimi. Questa guida avvisa l'utente, la prima volta che una modifica del parametro cgroup regolabile potrebbe interessare uno o più task.
Su di un sistema sul quale è già stato configurato cgroups (sia manualmente o tramite il servizio cgconfig), questi comandi falliranno se prima non sono state smontate le gerarchie esistenti, e che interesseranno il funzionamento del sistema. Non eseguire alcuna prova usando le suddette istruzioni su sistemi di produzione.
Per creare una gerarchia e collegare ad essa i sottosistemi, modificare la sezione mount del file /etc/cgconfig.conf come root. Le voci nella sezione mount presentano il seguente formato:
sottosistema = /cgroup/gerarchia;
Al successivo avvio di cgconfig verrà creata una gerarchia alla quale saranno collegati i sottosistemi.
Il seguente esempio crea una gerarchia chiamata cpu_and_mem collegando ad essa i sottosistemi cpu, cpuset, cpuacct, e memory.
mount {
    cpuset  = /cgroup/cpu_and_mem;
    cpu     = /cgroup/cpu_and_mem;
    cpuacct = /cgroup/cpu_and_mem;
    memory  = /cgroup/cpu_and_mem;
}

Metodo alternativo

È possibile usare le utilità ed i comandi di shell per creare le gerarchie e collegarne ad esse i sottosistemi.
Creare un mount point per la gerarchia come utente root. Includere il nome del cgroup all'interno del mount point:
~]# mkdir /cgroup/nome
Per esempio:
~]# mkdir /cgroup/cpu_and_mem
Successivamente, usare il comando mount per montare la gerarchia e collegare simultaneamente uno o più sottosistemi. Per esempio:
~]# mount -t cgroup -o sottosistemi nome /cgroup/nome
Dove suottosistemi è una lista separata da virgole, di sottosistemi e nome è il nome della gerarchia. Brevi descrizioni di tutti i sottosistemi disponibili sono elencati in Sottosistemi disponibili in Fedora, mentre il Capitolo 3, Sottosistemi e parametri regolabili fornisce un riferimento dettagliato.
Esempio 2.3. Utilizzo del comando mount per collegare i sottosistemi
In questo esempio una directory chiamata /cgroup/cpu_and_mem è già esistente, e serve come mount point per la gerarchia da creare. Saranno collegati i sottosistemi cpu, cpuset e memory ad una gerarchia chiamata cpu_and_mem, e si eseguirà il mount della gerarchia cpu_and_mem su /cgroup/cpu_and_mem:
~]# mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
È possibile elencare tutti i sottosistemi disponibili, insieme con i mount point correnti (cioè dove risulta montata la gerarchia alla quale sono collegati), con il comando lssubsys [3]:
~]# lssubsys -am
cpu,cpuset,memory /cgroup/cpu_and_mem
net_cls
ns
cpuacct
devices
freezer
blkio
Questo output indica che:
  • i sottosistemi cpu, cpuset e memory sono collegati ad una gerarchia montata su /cgroup/cpu_and_mem, e
  • i sottosistemi net_cls, ns, cpuacct, devices, freezer e blkio non sono ancora collegati ad alcuna gerarchia, come indicato dalla mancanza di un mount point corrispondente.



[3] Il comando lssubsys è una delle utilità fornite dal pacchetto libcgroup-tools. Installare libcgroup-tools per poterlo utilizzare: consultare Capitolo 2, Utilizzo dei Control Groups se non si è in grado di eseguire lssubsys.