Como posso alternar entre os agendadores CFS e BFS?

17

Relacionado a uma pergunta em qual é melhor, o scheduler CFS ou BFS :

Onde encontro uma lista de quais agendadores estão disponíveis?

E como faço para alternar entre eles?

    
por j-g-faustus 03.03.2011 / 19:04

4 respostas

7

Você terá que baixar, corrigir e compilar seu próprio kernel porque o BFS atualmente não faz parte do kernel principal. O kernel mainline contém apenas um agendador e não tem múltiplos agendadores na mesma base de código, ou mesmo agendadores selecionáveis (isso é algo que possivelmente poderia ser feito). Seria simplesmente muito complicado e não valeria o esforço.

Assim, para obter o BFS no seu sistema:

  • Obtenha o kernel: link
  • Obtenha o patch BFS mais recente para sua versão do kernel: link
  • Atualize, compile e inicialize seu novo kernel.

O benefício de executar o BFS sobre o CFS é muito pequeno, especialmente com versões mais recentes do kernel. Tenha em mente que o CFS está sendo constantemente aprimorado.

    
por Cedric 06.03.2011 / 17:16
9

Tendo pesquisado isso um pouco, parece haver apenas dois agendadores para o Linux: CFS e BFS .

A maneira mais simples de instalar o BFS no Ubuntu 10.10 é um patch do PPA :

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

Você também pode instalar o patch usando o Ubuntu Software Center, conforme descrito em " O que são PPAs e como usá-los ".

O patch instala um novo kernel (atualizado), que aparecerá no menu do GRUB na inicialização com o sufixo "-ck". Alterne entre agendadores reiniciando e selecionando o kernel apropriado no menu de inicialização.

Sobre o desempenho

No meu caso, executando Folding @ Home em segundo plano em um PC de mesa (oito threads F @ H em oito núcleos em um Intel i7 2600K), o BFS é significativamente melhor: a resposta do desktop é mais rápida (não é uma grande diferença, mas definitivamente perceptível), enquanto o aplicativo F @ H em segundo plano é 20-25% mais rápido.

Neste cenário, lidando com o uso de desktops interativos e tarefas de segundo plano pesadas com CPU de longa execução simultaneamente, o CFS tendia a deixar um núcleo ocioso por longos períodos de cada vez. O BFS parece muito melhor em usar todos os núcleos 100% para tarefas em segundo plano, enquanto ainda fornece resposta rápida para tarefas de área de trabalho interativas.

Provavelmente, não há um agendador único que funcione de maneira ideal sob todas as combinações possíveis de cargas, mas há casos em que o BFS é melhor.

    
por j-g-faustus 19.03.2011 / 10:47
3

O abaixo funcionou para mim no Precise Pangolin (Ubuntu 12.04) YMMV, embora.

BFS faz parte de pf-kernel

A melhor maneira de instalar o BFS em um sistema Ubuntu hoje (dezembro de 2013) parece ser a instalação do pf-kernel , que é basicamente um kernel padrão com um monte de correções de desempenho aplicadas. Essas correções incluem:

  • BFS (o agendador de CPU fornece baixa latência em computadores com menos de 16 CPUs núcleos)
  • BFQ (programador de disco de E / S otimizado para baixa latência sob cargas pesadas)
  • TuxOnIce (hibernação mais rápida)

Instruções na Web

Encontrei algumas instruções sobre como instalar os pacotes pf-kernel para o Ubuntu no artigo “ Get Better Linux Desktop Performance e muito mais com pf-kernel ." - No entanto, estas instruções estão um pouco desatualizadas, pois apontam para uma fonte inexistente para os pacotes Debian relevantes. Mas eu encontrei o tópico “ pf-kernel para Ubuntu ” (nos fóruns pk-kernel ) que menciona que os pacotes Debian podem ser baixados da conta do Dropbox do usuário do fórum .

Instalando pf-kernel

A máquina na qual eu instalei é um laptop antigo de 32 bits, então comecei fazendo o download dos pacotes linux-headers e linux-image necessários para um diretório em minha máquina chamado ~/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

(Vá para a conta do Dropbox acima mencionada para encontrar 64 bits e / ou versões mais recentes desses pacotes.)

Depois disso, eu segui as instruções de " Get Better Linux Desktop Performance e muito mais com pf-kernel , e executou os seguintes comandos:

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

Tudo parece funcionar bem, então eu reiniciei.

Verificando se funciona

Uma inspeção rápida parece indicar que funciona, por exemplo o comando uname -a informa que estou usando o pf-kernel :

  

Linux siobhan 3.12.2-pf + # 6 SMP PREPARADO seg 2 de dezembro 19:09:52 EET 2013 i686 i686 i386 GNU / Linux

E cat /sys/block/sda/queue/scheduler mostra que o BFQ agora é o agendador de disco atual (para o disco sda ):

noop deadline cfq [bfq] 
    
por zrajm 19.12.2013 / 04:16
1

Corrigir e instalar um novo kernel com o BFS. Você tem que usar os kernels sepatare, não há como usar ambos na mesma imagem do kernel (especialmente para usá-los on-the-fly)

    
por user11924 06.03.2011 / 16:53