Eu sou o autor do post do blog vinculado pelo fã do ubuntu: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/
Essa publicação no blog não apresenta nenhum fato, é apenas teoria . É assim que funciona: o processador "para" com mais frequência para ver se existem alguns processos que requerem atenção imediata. Isso significa que esses processos serão executados antes dos outros, para que você não pule os quadros ao codificar ou tenha um grande atraso entre os cliques do mouse e as mortes de inimigos. Isso não significa que todos os processos terminarão mais cedo: na verdade, a CPU está perdendo uma parte maior do seu tempo decidindo qual processo será executado a seguir e fazendo a alternância de contexto. Portanto, o tempo total de execução é maior, e é por isso que ninguém executa um kernel preemptivo em servidores da Web ou em máquinas de banco de dados. Mas um kernel preemptivo de 300Hz (ou mesmo 1000Hz) é o melhor para servidores de jogos.
Atualmente, porém, os processadores têm muitos núcleos; portanto, quando há poucos processos que requerem atenção, eles podem ser facilmente alocados em um núcleo diferente, em vez de esperar que um núcleo o aceite.
(stackexchange requer referências / experiência pessoal: sou engenheiro eletrônico, noobgamer sedento de sangue e mantenho vários servidores de jogos em http://www.gamezoo.it ).
Então, como regra geral, eu diria: se o seu processador for um poderoso quad-core de alta frequência e que normalmente não abre muitas páginas da web ao codificar / decodificar / jogar (huh), você pode tente o kernel genérico (ou i686 ou amd64, se existir) e tenha a maior taxa de transferência possível (ou seja, a trituração bruta de número que o processador é capaz de executar). Se você tiver problemas (eles realmente devem ser menores) ou se sua máquina for um pouco menos potente do que a parte superior do mercado, escolha a opção.
Se você estiver em uma máquina low-end que possui apenas um ou dois núcleos, tente a -latitude. Você também pode tentar o -realtime, mas descobrirá que ele tende a bloquear processos até que os "em tempo real" concluam seu trabalho. Eu acredito que o kernel em tempo real não é o "baunilha", mas tem o patch CONFIG_PREEMPT_RT aplicado. Eu acho que os kernels em tempo real são apenas para aqueles que precisam criar um único aplicativo em sistemas embarcados; portanto, os usuários comuns de desktop não devem ter benefícios reais, porque geralmente executam um número razoável de aplicativos ao mesmo tempo.
Finalmente, as opções mais relevantes do kernel, se você deseja recompilar seu kernel para ter uma área de trabalho de baixa latência, são:
PREEMPT=y
e:
CONFIG_1000_HZ=y
Para adicionar alguns recursos, você pode verificar este:
CONFIG_NO_HZ=y
-realtime
for em tempo real, então o que-rt
significa? E o que há com o-preempt
kernel? Agradeço ao gemue2010, ele fez um bom trabalho explicando, mas ainda não explica tudo.