Como posso alternar entre os agendadores CFS e BFS?


Respostas:


7

Você terá que baixar, corrigir e compilar seu próprio kernel porque o BFS atualmente não faz parte do kernel da linha principal. O kernel da linha principal contém apenas um agendador e não deve ter vários agendadores na mesma base de código, nem mesmo agendadores alternáveis ​​dinâmicos (é algo que pode ser feito). Simplesmente seria muito complicado e não valeria o esforço.

Portanto, para obter o BFS no seu sistema:

O benefício de executar o BFS sobre o CFS é muito pequeno, especialmente nas versões mais recentes do kernel. Lembre-se de que o CFS está sendo aprimorado constantemente.


Compilei o kernel 4.0.5 com patch BFS, mas o agendador não está listado. O BFS foi ativado no make menuconfig. Eu não entendo o porquê.
Shantanu

9

Tendo pesquisado isso um pouco, parece haver apenas dois agendadores para 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 os uso" .

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


No desempenho

No meu caso, executando o 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 da área de trabalho é 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.

Nesse cenário, lidando com o uso interativo da área de trabalho e tarefas em segundo plano com muita CPU em execução simultaneamente, o CFS tendia a deixar um núcleo ocioso por longos períodos de cada vez. O BFS parece muito melhor ao usar todos os núcleos 100% para tarefas em segundo plano, ao mesmo tempo em que fornece resposta rápida para tarefas interativas na área de trabalho.

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


3

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

O BFS faz parte de pf-kernel

A melhor maneira de instalar o BFS em um sistema Ubuntu hoje (dezembro de 2013) parece ser instalar o pf-kernel , que é basicamente um kernel padrão com várias correções de desempenho aplicadas. Esses patches incluem:

  • BFS (agendador de CPU fornece baixa latência em máquinas com menos de 16 núcleos de CPU)
  • BFQ (planejador 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 pf-kernelpacotes para o Ubuntu no artigo “ Obtenha melhor desempenho do Linux Desktop e mais com o pf-kernel .” - No entanto, essas instruções estão um pouco desatualizadas, pois apontam para uma fonte inexistente para o Debian relevante pacotes. Mas eu encontrei o tópico " pf-kernel para Ubuntu " (nos pk-kernelfóruns), que menciona que os pacotes Debian podem ser baixados da conta Dropbox do usuário do fórum big_bum .

Instalando pf-kernel

A máquina em que eu instalei é um laptop de 32 bits antigo, então comecei baixando os pacotes linux-headerse os necessários linux-imageem um diretório em minha máquina chamado ~/kernel.

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

Posteriormente, segui as instruções em " Melhor desempenho do Linux Desktop e mais com o pf-kernel " e executei os seguintes comandos:

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

Tudo parece funcionar sem problemas, então eu reiniciei.

Verificando se funciona

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

Linux siobhan 3.12.2-pf + # 6 SMP PREEMPT Segunda-feira, 2 de dezembro de 19:09:52 EET 2013 i686 i686 i386 GNU / Linux

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

noop deadline cfq [bfq] 

Nov'14 - Instalei este pf-kernel no meu Precise Pangolin (Ubuntu 12.04.4 LTS) executando o Mythbuntu principalmente para obter melhor E / S do meu sistema de arquivos xfs para gravações de vídeo. Combinei as versões do kernel (3.13) para garantir a compatibilidade do driver padrão da nvidia. Funcionou sem problemas. Parabéns ao zrjm ... ..!
keepitsimpleengineer

1

Corrija e instale um novo kernel com o BFS. Você precisa usar kernels separados, não há como usar os dois na mesma imagem do kernel (especialmente para trocá-los on-the-fly)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.