Relacionado a uma pergunta sobre qual é o melhor, o planejador CFS ou BFS :
Onde encontro uma lista de quais agendadores estão disponíveis?
E como eu alterno entre eles?
Relacionado a uma pergunta sobre qual é o melhor, o planejador CFS ou BFS :
Onde encontro uma lista de quais agendadores estão disponíveis?
E como eu alterno entre eles?
Respostas:
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.
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.
O abaixo funcionou para mim no Precise Pangolin (Ubuntu 12.04) YMMV, no entanto.
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:
Encontrei algumas instruções sobre como instalar os pf-kernel
pacotes 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-kernel
fóruns), que menciona que os pacotes Debian podem ser baixados da conta Dropbox do usuário do fórum big_bum .
pf-kernel
A máquina em que eu instalei é um laptop de 32 bits antigo, então comecei baixando os pacotes linux-headers
e os necessários linux-image
em 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.
Uma inspeção rápida parece indicar que funciona, por exemplo, o comando uname -a
relata 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/scheduler
mostra que o BFQ agora é o agendador de disco atual (para o sda
disco):
noop deadline cfq [bfq]
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)