I gruppi di controllo o cgroups in Linux sono un componente del kernel che isola, prioritizza e controlla la distribuzione delle risorse di sistema per i processi o i container come LXC (Linux Container). Questi possono includere CPU, memoria, dischi I/O, rete e altro.
Ecco come si possono utilizzare i cgroups in LXC:
1. Crea un cgroup: Prima di tutto, è necessario creare un cgroup. Puoi farlo utilizzando l’utility cgcreate. Per esempio: \`\`\` cgcreate -g cpu:/cpulimited cgcreate -g memory:/memorylimited \`\`\`
1. Configura il cgroup: Dopo aver creato un cgroup, puoi configurarlo. Ad esempio, per limitare l’utilizzo della CPU al 50% per il cgroup cpulimited, puoi eseguire: \`\`\` echo 50000 > /sys/fs/cgroup/cpu/cpulimited/cpu.cfs_quota_us \`\`\` Per limitare l’uso della memoria a 512 MB per il cgroup memorylimited, puoi eseguire: \`\`\` echo $((512_1024_1024)) > /sys/fs/cgroup/memory/memorylimited/memory.limit_in_bytes \`\`\`
1. Assegna processi al cgroup: Ora che il tuo cgroup è configurato, puoi assegnare processi ad esso. Ogni processo in Linux ha un ID di processo (PID). Puoi assegnare un processo a un cgroup scrivendo il suo PID nel file cgroup.procs del cgroup. Per esempio: \`\`\` echo 1234 > /sys/fs/cgroup/cpu/cpulimited/cgroup.procs echo 1234 > /sys/fs/cgroup/memory/memorylimited/cgroup.procs \`\`\` In LXC, puoi creare un container e assegnarlo a un cgroup nel file di configurazione del container. Ad esempio: \`\`\` lxc.cgroup.cpu.limit = 50% lxc.cgroup.memory.limit = 512M \`\`\`
1. Monitora i cgroup: Puoi monitorare i cgroup esaminando i loro file di statistica. Ad esempio: \`\`\` cat /sys/fs/cgroup/cpu/cpulimited/cpu.stat cat /sys/fs/cgroup/memory/memorylimited/memory.stat \`\`\`
1. Rimuovi i cgroup: Quando non hai più bisogno di un cgroup, puoi rimuoverlo utilizzando l’utility cgdelete. Per esempio: \`\`\` cgdelete cpu:/cpulimited cgdelete memory:/memorylimited \`\`\`