Wie kann ich zwischen dem CFS- und dem BFS-Scheduler wechseln?

Antworten:

7

Sie müssen Ihren eigenen Kernel herunterladen, patchen und kompilieren, da BFS derzeit nicht zum Hauptkernel gehört. Der Mainline-Kernel enthält nur einen Scheduler und soll nicht mehrere Scheduler in derselben Codebasis oder sogar on-the-fly umschaltbare Scheduler enthalten. Es wäre einfach zu kompliziert und die Mühe nicht wert.

So erhalten Sie BFS auf Ihrem System:

Der Vorteil der Ausführung von BFS über CFS ist jedoch sehr gering, insbesondere bei neueren Kernelversionen. Denken Sie daran, dass CFS ständig verbessert wird.

Cedric
quelle
Ich habe den Kernel 4.0.5 mit dem BFS-Patch kompiliert, aber der Scheduler ist nicht aufgeführt. BFS wurde in make menuconfig aktiviert. Ich verstehe nicht warum.
Shantanu
9

Nachdem dies ein wenig untersucht wurde, scheint es nur zwei Scheduler für Linux zu geben: CFS und BFS .

Die einfachste Möglichkeit, BFS in Ubuntu 10.10 zu installieren, ist ein PPA-Patch :

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

Sie können den Patch auch über das Ubuntu Software Center installieren, wie unter "Was sind PPAs und wie verwende ich sie?" Beschrieben .

Der Patch installiert einen neuen (gepatchten) Kernel, der beim Booten im GRUB-Menü mit dem Suffix "-ck" angezeigt wird. Wechseln Sie zwischen den Schedulern, indem Sie den Rechner neu starten und den entsprechenden Kernel im Boot-Menü auswählen.


Auf Leistung

In meinem Fall läuft Folding @ Home auf einem Desktop-PC im Hintergrund ausgeführt wird (acht F @ H-Threads auf acht Kernen auf einem Intel i7 2600K), ist BFS deutlich besser: Die Desktop-Reaktion ist schneller (kein großer Unterschied, aber auf jeden Fall spürbar). während der Hintergrund F @ H-Anwendung ist 20-25% schneller.

In diesem Szenario ließ CFS bei gleichzeitiger Verwendung interaktiver Desktops und lang andauernden, CPU-lastigen Hintergrundaufgaben einen Kern für längere Zeit im Leerlauf. BFS scheint viel besser darin zu sein, alle Kerne zu 100% für Hintergrundaufgaben zu verwenden und dennoch eine schnelle Antwort für interaktive Desktop-Aufgaben bereitzustellen.

Es gibt wahrscheinlich keinen einzelnen Scheduler, der unter jeder möglichen Kombination von Lasten eine optimale Leistung erbringt, aber es gibt Fälle, in denen BFS besser ist.

jg-faustus
quelle
3

Das Folgende funktionierte jedoch für Precise Pangolin (Ubuntu 12.04) YMMV.

BFS ist Teil von pf-kernel

Die beste Möglichkeit, BFS heute (Dezember 2013) auf einem Ubuntu-System zu installieren, scheint die Installation des pf-Kernels zu sein , bei dem es sich im Grunde um einen Standard-Kernel mit einer Reihe von angewendeten Leistungs-Patches handelt. Diese Patches beinhalten:

  • BFS (CPU-Scheduler sorgt für geringe Latenz auf Computern mit weniger als 16 CPU-Kernen)
  • BFQ (I / O Disk Scheduler, optimiert für niedrige Latenz bei hoher Last)
  • Smoking (schnellerer Ruhezustand)

Anweisungen im Web

Ich habe einige Anweisungen zum Installieren der pf-kernelPakete für Ubuntu im Artikel " Bessere Linux-Desktop-Leistung und mehr mit pf-kernel " gefunden. Diese Anweisungen sind jedoch etwas veraltet, da sie auf eine nicht vorhandene Quelle für das relevante Debian verweisen Pakete. Aber ich habe den Thread " pf-kernel for Ubuntu " (im pk-kernelForum) gefunden, in dem erwähnt wird, dass Debian-Pakete vom Dropbox-Konto des Forumsbenutzers big_bum heruntergeladen werden können .

Installieren pf-kernel

Der Computer, auf dem ich installiert habe, ist ein alter 32-Bit-Laptop. Daher habe ich zunächst die erforderlichen Pakete linux-headersund linux-imagePakete in ein Verzeichnis auf meinem Computer mit dem Namen heruntergeladen ~/kernel.

(Gehen Sie zu dem oben genannten Dropbox-Konto auf, um 64-Bit-Pakete und / oder neuere Versionen dieser Pakete zu finden.)

Danach befolgte ich die Anweisungen unter „ Bessere Linux-Desktop-Leistung und mehr mit pf-kernel “ und führte die folgenden Befehle aus:

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

Alles scheint reibungslos zu funktionieren, also habe ich neu gestartet.

Überprüfen, ob es funktioniert

Eine kurze Inspektion scheint zu zeigen, dass es funktioniert, z. B. der Befehl uname -ameldet, dass ich Folgendes verwende pf-kernel:

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

Und cat /sys/block/sda/queue/schedulerzeigt, dass BFQ jetzt der aktuelle Festplatten-Scheduler ist (für die sdaFestplatte):

noop deadline cfq [bfq] 
zrajm
quelle
14.11. - Ich habe diesen pf-Kernel auf meinem Precise Pangolin (Ubuntu 12.04.4 LTS) installiert, auf dem Mythbuntu ausgeführt wird, hauptsächlich, um eine bessere Ein- / Ausgabe von meinem xfs-Dateisystem für Videoaufnahmen zu erhalten. Ich habe die Kernel-Versionen (3.13) abgeglichen, um die Kompatibilität des NVIDIA-Standardtreibers zu gewährleisten. Es hat reibungslos funktioniert. Ein dickes Lob an zrjm ... ..!
Keepitsimpleengineer
1

Patche und installiere einen neuen Kernel mit BFS. Sie müssen separate Kernel verwenden. Es gibt keine Möglichkeit, beide im selben Kernel-Image zu verwenden (insbesondere, um sie on-the-fly zu verwenden).


quelle