Bezogen auf eine Frage, welche besser ist, den CFS- oder BFS-Scheduler :
Wo finde ich eine Liste der verfügbaren Scheduler?
Und wie wechsle ich zwischen ihnen?
Bezogen auf eine Frage, welche besser ist, den CFS- oder BFS-Scheduler :
Wo finde ich eine Liste der verfügbaren Scheduler?
Und wie wechsle ich zwischen ihnen?
Antworten:
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.
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.
Das Folgende funktionierte jedoch für Precise Pangolin (Ubuntu 12.04) YMMV.
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:
Ich habe einige Anweisungen zum Installieren der pf-kernel
Pakete 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-kernel
Forum) gefunden, in dem erwähnt wird, dass Debian-Pakete vom Dropbox-Konto des Forumsbenutzers big_bum heruntergeladen werden können .
pf-kernel
Der Computer, auf dem ich installiert habe, ist ein alter 32-Bit-Laptop. Daher habe ich zunächst die erforderlichen Pakete linux-headers
und linux-image
Pakete 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.
Eine kurze Inspektion scheint zu zeigen, dass es funktioniert, z. B. der Befehl uname -a
meldet, 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/scheduler
zeigt, dass BFQ jetzt der aktuelle Festplatten-Scheduler ist (für die sda
Festplatte):
noop deadline cfq [bfq]
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).