Chapitre 4. Gestion des ressources
CFS (« Completely Fair Scheduler ») dans le noyau Linux est un planificateur de partage proportionnel qui divise le temps CPU proportionnellement entre des groupes de tâches en fonction de la priorité/du poids de la tâche ou des parts assignée(s) au groupe de tâches. Dans CFS, un groupe de tâches peut recevoir plus que sa part de CPU s'il y a suffisamment de cycles CPU inactifs disponibles sur le système, dû à la nature conservant le travail du planificateur.
- Paiement à l'utilisation
- Dans les systèmes d'entreprise répondant à de multiples clients, les fournisseurs de services cloud doivent assigner un montant fixe de temps CPU à l'invité virtuel en se basant sur le niveau de service.
- Garanties de niveau de service
- Le client demande un pourcentage de ressources CPU sans interruptions de service pour chaque invité virtuel.
Les cgroups font partie intégrante de Red Hat Enterprise Linux 6, et libvirt crée un cgroup par modèle invité. Sur les systèmes SMP de grande taille, une augmentation du nombre de cgroups a détérioré la performance. Cependant, dans Red Hat Enterprise Linux 6.2, l'évolutivité des CPU des cgroups a été améliorée de manière importante, rendant possible la création et l'exécution de plusieurs centaines de cgroups à la fois sans implications pour la performance.
/proc
, dd sysctl_sched_shares_window
, a été ajouté, sa valeur par défaut est de 10 ms.
Le design du contrôleur d'E/S des cgroups a été amélioré pour réduire l'utilisation des verrous dans le contrôleur des E/S, résultant ainsi en une performance améliorée. Le contrôleur des E/S prend maintenant aussi en charge les statistiques par cgroup.
Red Hat Enterprise Linux 6.2 présente une amélioration du traitement de l'utilisation de mémoire sur le contrôleur de mémoire en réduisant l'allocation de traitement pour la matrice page_cgroup
de 37%. En outre, le pointeur direct page_cgroup-to-page
a été supprimé, améliorant la performance du contrôleur mémoire.
La valeur par défaut de la variable group_isolation
de CFQ a été modifiée de 0
à 1
(/sys/block/<device>/queue/iosched/group_isoaltion
). Après divers tests et de nombreux rapports d'utilisateurs, il a été trouvé que la valeur par défaut de 1
était plus utile. Lorsque définit sur 0
, toutes les files d'E/S aléatoires deviennent partie intégrante du cgroup racine et non du cgroup dont fait partie l'application. Par conséquent, ceci n'apporte aucune différenciation pour les applications.
Note