Historique: CGroup
Aperçu de cette version: 5
Optimisations du système
---------
AVANT TOUT
• Le portail des débutants
• Le temps réel pour les applications
---------
ENSUITE
• Les disques durs et hdparm
• LE watchdog
• CGroup
• Latence des périphériques PCI
---------
LE NOYAU
• Le noyau
• Le noyau Temps-Réel
• Compiler un noyau 2.6 RT
---------
PLUS LOIN ENCORE
• Interruption matérielle - IRQ : les bases
• Gestion des IRQ
• La gestion des priorités
Table des matières
CGROUP et libcgroup
CGROUP (ou cgroup) est un ensemble de fonctions des kernels récents. Libcgroup est une librairie et un ensemble de programmes qui permettent de gérer facilement ces fonctions.CGROUP fournit un ensemble de hiérarchies dans le kernel et il est possible d'attacher des sous-systèmes à ces hiérarchies.
Il est possible de gérer ces hiérarchies et ces sous-système avec des commandes depuis une console, mais libcgroup permet de le faire plus facilement, de façon plus étendue, et de rendre cette gestion permanente en modifiant sa configuration.
Le but de tout ça? 🙄, je comparerais avec udev. Udev permet de gérer les périphériques de façon automatique (en principe ça marche assez bien heureusement!).
Cgroup fait la même chose mais avec toutes les tâches du système.
Le principe de base est d'assigner des ressources aux tâches.
En le testant, je me suis rendu compte que bien que cgroup concerne l'ensemble des tâches et des ressources du système, il est, en tout cas pour ce qui nous intéresse ici, l'audio professionnelle, bien plus simple à configurer que udev. Ceci va faire plaisir à beaucoup de monde, j'en suis sur! 🎅
Configuration du kernel
Je met ma configuration actuelle. Je voulais être sur que cela allait fonctionner et j'ai certainement mis plus d'options que nécessaire. Je mettrai à jour quand j'aurai eu le temps de lui faire une cure d'amaigrissement.Un grep de ma configuration donne:
Copy to clipboard
cat /usr/src/linux/.config|grep CGROUP CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y # CONFIG_CGROUP_MEM_RES_CTLR is not set # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_SCHED=y CONFIG_BLK_CGROUP=m # CONFIG_DEBUG_BLK_CGROUP is not set
Ces options sont dans General setup. J'ai commencé par sélectionner Control Group support. Là dedans, j'ai sélectionné Freezer cgroup subsystem, Device controller for cgroups, Cpuset support, Include legacy /proc/<pid>/cpuset file, Simple CPU accounting cgroup subsystem, Resource conters, Group CPU scheduler ---> Group scheduling for SCHED OTHER + Group scheduling for SCHED_RR/FIFO, <M> Block IO controller. Ensuite, j'ai aussi sélectionné Automatic proocess group scheduling.