Come posso passare tra gli scheduler CFS e BFS?

17

Correlato a una domanda su che è meglio, lo scheduler CFS o BFS :

Dove trovo un elenco di quali programmatori sono disponibili?

E come posso cambiarli?

    
posta j-g-faustus 03.03.2011 - 19:04

4 risposte

7

Dovrai scaricare, applicare patch e compilare il tuo kernel perché BFS non fa attualmente parte del kernel della linea principale. Il kernel della linea principale contiene un solo scheduler e non ha lo scopo di avere più scheduler nella stessa base di codice, o anche scheduler selezionabili al volo (è anche qualcosa che potrebbe essere fatto). Sarebbe semplicemente troppo complicato e non ne vale la pena.

Quindi, per ottenere BFS sul tuo sistema:

  • Ottieni il kernel: link
  • Scarica l'ultima patch BFS per la versione del tuo kernel: link
  • Patch, compilare e quindi avviare il nuovo kernel.

Il vantaggio di eseguire BFS su CFS è molto piccolo, specialmente con le versioni del kernel più recenti. Tieni presente che la CFS viene costantemente migliorata.

    
risposta data Cedric 06.03.2011 - 17:16
9

Dopo averlo studiato un po ', sembra che ci siano solo due scheduler per Linux: CFS e BFS .

Il modo più semplice per installare BFS in Ubuntu 10.10 è una patch PPA :

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

Puoi anche installare la patch usando Ubuntu Software Center come descritto in " Cosa sono i PPA e come li uso ".

La patch installa un nuovo kernel (con patch), che apparirà nel menu di GRUB all'avvio con il suffisso "-ck". Passa da uno schedulatore al riavvio e seleziona il kernel appropriato nel menu di avvio.

Prestazioni

Nel mio caso, eseguendo Folding @ Home in background su un PC desktop (otto thread F @ H su otto core su un Intel i7 2600K), BFS è significativamente migliore: la risposta del desktop è più snella (non una grande differenza, ma sicuramente notevole) mentre l'applicazione F @ H in background è 20-25% più veloce.

In questo scenario, che si occupava simultaneamente di un uso interattivo del desktop e di attività in background con CPU pesanti, la CFS tendeva a lasciare un core inattivo per lunghi periodi alla volta. BFS appare molto meglio nell'usare tutti i core al 100% per le attività in background, fornendo al contempo una risposta rapida per le attività desktop interattive.

Probabilmente non esiste un singolo scheduler che funzioni in modo ottimale sotto ogni possibile combinazione di carichi, ma ci sono casi in cui BFS è migliore.

    
risposta data j-g-faustus 19.03.2011 - 10:47
3

Il sotto funzionava per me su Precision Pangolin (Ubuntu 12.04) YMMV, tuttavia.

BFS è parte di pf-kernel

Il modo migliore per installare BFS su un sistema Ubuntu oggi (dicembre 2013) sembra essere quello di installare pf-kernel , che è fondamentalmente un kernel standard con un sacco di patch per le prestazioni applicate. Queste patch includono:

  • BFS (lo scheduler della CPU offre una bassa latenza su macchine con meno di 16 CPU nuclei)
  • BFQ (scheduler del disco di I / O ottimizzato per bassa latenza in presenza di carichi pesanti)
  • TuxOnIce (ibernazione più veloce)

Istruzioni sul Web

Ho trovato alcune istruzioni su come installare i pacchetti pf-kernel per Ubuntu nell'articolo " Ottieni migliori prestazioni del desktop Linux e altro ancora con pf-kernel ." - Tuttavia queste istruzioni sono un po 'obsolete, poiché punta a una fonte non esistente per i pacchetti Debian rilevanti. Ma ho trovato il thread " pf-kernel per Ubuntu " (nei forum pk-kernel ) che menziona che i pacchetti Debian possono essere scaricati da account Dropbox dell'utente del forum big_bum .

Installazione di pf-kernel

Il computer su cui ho installato è un vecchio computer portatile a 32 bit, quindi ho iniziato scaricando i pacchetti richiesti linux-headers e linux-image in una directory sul mio computer denominata ~/kernel .

  • linux-headers-3.12.2-pf + _3.12.2-pf + -10.00.Custom_i386.deb
  • linux-image-3.12.2-pf + _3.12.2-pf + -10.00.Custom_i386.deb

(Vai al summenzionato account Dropbox per trovare 64 bit e / o versioni più recenti di questi pacchetti.)

Da allora in poi ho seguito le istruzioni su " Ottieni migliori prestazioni del desktop Linux e altro ancora con pf-kernel , "ed eseguito i seguenti comandi:

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

Sembra che tutto funzioni senza problemi, quindi ho riavviato.

Verifica se funziona

Una rapida ispezione sembra indicare che funziona, ad es. il comando uname -a segnala che sto utilizzando pf-kernel :

  

Linux siobhan 3.12.2-pf + # 6 SMP PREMEMO Lun 2 Dic. 19:09:52 EET 2013 i686 i686 i386 GNU / Linux

E cat /sys/block/sda/queue/scheduler mostra che BFQ ora è l'attuale scheduler del disco (per il sda disco):

noop deadline cfq [bfq] 
    
risposta data zrajm 19.12.2013 - 04:16
1

Patch e installa un nuovo kernel con BFS. Devi usare i kernel sepatare, non c'è modo di usare entrambi nella stessa immagine del kernel (specialmente per switharli al volo)

    
risposta data user11924 06.03.2011 - 16:53

Leggi altre domande sui tag