Jak mogę przełączać się między harmonogramami CFS i BFS?

Odpowiedzi:

7

Będziesz musiał pobrać, załatać i skompilować własne jądro, ponieważ BFS nie jest obecnie częścią jądra głównego. Jądro linii głównej zawiera tylko jeden program planujący i nie ma na celu posiadania wielu programów planujących w tej samej bazie kodu, ani nawet przełączalnych programów planujących w locie (jest to nawet coś, co można by zrobić). Byłoby to po prostu zbyt skomplikowane i nie warte wysiłku.

Tak więc, aby uzyskać BFS w systemie:

Zaleta uruchamiania BFS nad CFS jest jednak bardzo niewielka, szczególnie w przypadku nowszych wersji jądra. Pamiętaj, że CFS jest ciągle ulepszany.

Cedric
źródło
Skompilowałem jądro 4.0.5 z łatką BFS, ale harmonogramu nie ma na liście. BFS został włączony w make menuconfig. Nie rozumiem dlaczego.
shantanu
9

Po dokładnym zbadaniu tego wydaje się, że istnieją tylko dwa harmonogramy dla Linuksa: CFS i BFS .

Najprostszym sposobem zainstalowania BFS w Ubuntu 10.10 jest łatka PPA :

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

Możesz także zainstalować poprawkę za pomocą Centrum oprogramowania Ubuntu zgodnie z opisem w „Czym są PPA i jak z nich korzystać” .

Łatka instaluje nowe (załatane) jądro, które pojawi się w menu GRUB przy starcie z przyrostkiem „-ck”. Przełączaj się między harmonogramami poprzez ponowne uruchomienie i wybranie odpowiedniego jądra w menu startowym.


Na wydajność

W moim przypadku, gdy Folding @ Home działa w tle na komputerze stacjonarnym (osiem wątków F @ H na ośmiu rdzeniach w procesorze Intel i7 2600K), BFS jest znacznie lepszy: reakcja pulpitu jest szybsza (nie jest to duża różnica, ale zdecydowanie zauważalna) podczas gdy aplikacja F @ H w tle działa o 20-25% szybciej.

W tym scenariuszu, dotyczącym jednoczesnego korzystania z interaktywnego pulpitu i długotrwałych zadań obciążających procesor w tle, system CFS pozostawiał jeden rdzeń bezczynny przez długi czas. BFS wydaje się znacznie lepszy w używaniu wszystkich rdzeni w 100% do zadań w tle, a jednocześnie zapewnia szybką reakcję na zadania interaktywnego pulpitu.

Prawdopodobnie nie ma jednego harmonogramu, który działałby optymalnie przy każdej możliwej kombinacji obciążeń, ale są przypadki, w których BFS jest lepszy.

jg-faustus
źródło
3

Jednak poniżej działało dla mnie na Precise Pangolin (Ubuntu 12.04) YMMV.

BFS jest częścią pf-kernel

Najlepszym sposobem na zainstalowanie BFS w systemie Ubuntu dzisiaj (grudzień 2013 r.) Wydaje się być instalacja jądra pf , który jest w zasadzie standardowym jądrem z kilkoma poprawkami wydajności. Te łaty obejmują:

  • BFS (program planujący procesor zapewnia małe opóźnienia na komputerach z mniej niż 16 rdzeniami procesora)
  • BFQ (harmonogram dysku I / O zoptymalizowany pod kątem małych opóźnień przy dużym obciążeniu)
  • TuxOnIce (szybsza hibernacja)

Instrukcje w sieci

Znalazłem instrukcje dotyczące instalowania pf-kernelpakietów dla Ubuntu w artykule „ Uzyskaj lepszą wydajność Linux Linux Desktop i więcej dzięki pf-kernel .” - Jednak te instrukcje są nieco nieaktualne, ponieważ wskazują na nieistniejące źródło odpowiedniego Debiana paczki Ale znalazłem wątek „ pf-kernel dla Ubuntu ” (na pk-kernelforach), który wspomina, że ​​pakiety Debiana można pobrać z konta Dropbox użytkownika forum big_bum .

Instalowanie pf-kernel

Komputer, na którym zainstalowałem, to stary 32-bitowy laptop, więc zacząłem od pobrania wymaganych pakietów linux-headersi linux-imagepakietów do katalogu na mojej maszynie o nazwie ~/kernel.

(Przejdź do wyżej wymienionego konta Dropbox, aby znaleźć 64-bitowe i / lub nowsze wersje tych pakietów.)

Następnie postępowałem zgodnie z instrukcjami „ Uzyskaj lepszą wydajność pulpitu Linuksa i więcej dzięki pf-kernel ” i wykonałem następujące polecenia:

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

Wygląda na to, że wszystko działa płynnie, więc zrestartowałem się.

Sprawdzanie, czy to działa

Szybka kontrola wydaje się wskazywać, że działa, np. Polecenie uname -ainformuje, że używam pf-kernel:

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

I cat /sys/block/sda/queue/schedulerpokazuje, że BFQ jest obecnie bieżącym programem planującym dyski (dla sdadysku):

noop deadline cfq [bfq] 
zrajm
źródło
14 listopada - Zainstalowałem to jądro pf na moim Precise Pangolin (Ubuntu 12.04.4 LTS) z uruchomionym Mythbuntu przede wszystkim po to, aby uzyskać lepsze I / O z mojego systemu plików xfs do nagrywania wideo. Dopasowałem wersje jądra (3.13), aby zapewnić domyślną zgodność sterowników nvidii. Działa bez żadnych problemów. Uznanie dla zrjm ... ..!
keepitsimpleengineer
1

Popraw i zainstaluj nowe jądro z BFS. Musisz użyć jądra sepatare, nie ma możliwości użycia obu na tym samym obrazie jądra (szczególnie do przełączania ich w locie)


źródło