web-dev-qa-db-fra.com

Comment puis-je basculer entre les planificateurs CFS et BFS?

Relatif à une question sur qui est mieux, le planificateur CFS ou BFS :

Où puis-je trouver une liste des planificateurs disponibles?

Et comment puis-je basculer entre eux?

17
j-g-faustus

Vous devrez télécharger, patcher et compiler votre propre noyau car BFS ne fait actuellement pas partie du noyau principal. Le noyau principal ne contient qu'un seul ordonnanceur et n'est pas censé avoir plusieurs ordonnanceurs dans la même base de code, ni même des ordonnanceurs commutables à la volée (c'est même quelque chose qui pourrait éventuellement être fait). Ce serait simplement trop compliqué et ne valait pas la peine.

Donc, pour avoir BFS sur votre système:

L’avantage d’exécuter BFS sur CFS est cependant très faible, en particulier avec les versions plus récentes du noyau. Gardez à l'esprit que CFS est en constante amélioration.

7
Cedric

Après avoir étudié cela un peu, il ne semble y avoir que deux ordonnanceurs pour Linux: CFS et BFS .

Le moyen le plus simple d’installer BFS dans Ubuntu 10.10 est un correctif PPA :

Sudo add-apt-repository ppa:chogydan/ppa 
Sudo apt-get update
Sudo apt-get install linux-image-generic-ck linux-headers-generic-ck

Vous pouvez également installer le correctif à l'aide du logiciel Ubuntu Software Center, comme indiqué dans la section "Que sont les PPA et comment les utiliser" .

Le correctif installe un nouveau noyau (corrigé), qui apparaîtra dans le menu GRUB au démarrage avec le suffixe "-ck". Basculez entre les planificateurs en redémarrant et en sélectionnant le noyau approprié dans le menu de démarrage.


À la performance

Dans mon cas, en exécutant Folding @ Home en arrière-plan sur un ordinateur de bureau (huit threads F @ H sur huit cœurs sur un Intel i7 2600K), BFS est bien meilleur: la réponse du bureau est plus vivante (pas une grande différence, mais nettement perceptible) alors que l'application d'arrière-plan F @ H est 20-25% plus rapide.

Dans ce scénario, qui traitait simultanément de l'utilisation de postes de travail interactifs et de tâches d'arrière-plan longues et lourdes en ressources processeur, CFS avait tendance à laisser un cœur inactif pendant de longues périodes à la fois. BFS semble bien mieux utiliser tous les cœurs à 100% pour les tâches en arrière-plan tout en offrant une réponse rapide pour les tâches de bureau interactives.

Il n’existe probablement aucun planificateur unique capable de fonctionner de manière optimale avec toutes les combinaisons de charges possibles, mais il existe des cas où BFS est préférable.

9
j-g-faustus

Ce qui suit a fonctionné pour moi sur Precise Pangolin (Ubuntu 12.04) YMMV, cependant.

BFS fait partie de pf-kernel

Le meilleur moyen d'installer BFS sur un système Ubuntu aujourd'hui (décembre 2013) semble être d'installer pf-kernel , qui est essentiellement un noyau standard auquel s'appliquent de nombreux correctifs de performance. Ces correctifs incluent:

  • BFS (le planificateur de l'unité centrale donne une faible latence sur les ordinateurs dotés de moins de 16 cœurs de l'unité centrale)
  • BFQ (Planificateur de disque d'E/S optimisé pour une faible latence sous fortes charges)
  • TuxOnIce (hibernation plus rapide)

Instructions sur le Web

J'ai trouvé des instructions sur la façon d'installer les packages pf-kernel pour Ubuntu dans l'article " . Améliorez les performances du bureau Linux et plus encore avec pf-kernel ." - Cependant, ces instructions sont quelque peu obsolètes, car ils indiquent une source non existante pour les paquets Debian pertinents. Mais j'ai trouvé le fil “ pf-kernel pour Ubuntu ” (sur les forums pk-kernel) qui mentionne que les paquets Debian peuvent être téléchargés depuis Compte Dropbox de l'utilisateur du forum big_bum .

Installation de pf-kernel

La machine sur laquelle j'ai installé est un ancien ordinateur portable 32 bits. J'ai donc commencé par télécharger les packages linux-headers et linux-image requis dans un répertoire de cette machine appelé ~/kernel.

(Accédez au compte Dropbox mentionné ci-dessus pour rechercher les versions 64 bits et/ou plus récentes de ces packages.)

Ensuite, j'ai suivi les instructions sur " Obtenez de meilleures performances du bureau Linux et plus encore avec pf-kernel " et ai exécuté les commandes suivantes:

$ cd ~/kernel
$ Sudo dpkg -i *.deb

Tout semble bien fonctionner, j'ai donc redémarré.

Vérifier si cela fonctionne

Une inspection rapide semble indiquer que cela fonctionne, par exemple. la commande uname -a indique que j'utilise le pf-kernel:

Siobhan Linux 3.12.2-pf + # 6 SMP PREEMPT Mon Dec 2 19:09:52 EET 2013 i686 i686 i386 GNU/Linux

Et cat /sys/block/sda/queue/scheduler indique que BFQ est maintenant le planificateur de disque actuel (pour le disque sda):

noop deadline cfq [bfq] 
3
zrajm

Corrigez et installez un nouveau noyau avec BFS. Vous devez utiliser des noyaux séparés, il n'y a aucun moyen d'utiliser les deux dans la même image du noyau (en particulier pour les basculer à la volée)

1
user11924