1000 kernel do Linux HZ necessário se eu tiver timer tickless e de alta resolução?

11

Estou tentando melhorar o desempenho no meu servidor. Eu tenho alguns processos que precisam de jitter baixo (menos de 10 ms de variação).

Eu tenho uma carga média de 4 no máximo em um i7-920 (4 núcleos físicos, 8 com HT). Existem cerca de 10 processos que variam de 40% a 90% de um modo de usuário principal. O uso do sistema é de 3% no total. O uso total da CPU é de 80% no máximo.

O ajuste do kernel de 100hz para 1000hz melhora o jitter se os timers sem pulso e de alta resolução já estiverem definidos?

Esta página parece indicar que ainda faz alguma coisa. link

Que tal mudar de voluntário (PREEMPT_VOLUNTARY) para preemptiva (PREEMPT)?

    
por Bob 09.04.2012 / 23:40

3 respostas

3

Se o jitter baixo é importante para você, sim, você pode querer usar tanto o 1000hz quanto o PREEMPT.

Se esses processos são realmente sensíveis ao tempo, você provavelmente precisará alguns patches / kernels mais orientados para o tempo real, ou pelo menos alguns parâmetros de agendamento, como rtprio.

Usos típicos são servidores de áudio, veja, por exemplo, conselhos de jackaudio

    
por 11.04.2012 / 18:43
3

I am trying to improve performance on my server. I have a few processes that need low jitter (less than 10ms variance).

Qualquer tempo real não melhorará o desempenho, pois tornaria todo o sistema rodando mais suavemente, mas um pouco mais lento, na verdade. Em outras palavras, é o throughput x latência. Se é realmente o que você precisa, então várias opções:

  • Use 300 Hz ou até 1 KHz, PREEMPT e não use tickless
  • Use nice , schedtool para atribuir prioridades / classes adequadas de acordo com suas necessidades
  • Experimente RT ou BFS
por 11.04.2012 / 18:54
3

1) Não use tickless, ele ainda é altamente experimental e não é recomendado para ninguém, mas os desenvolvedores que trabalham nele também servem para ajudar a economizar energia.

2) Supõe-se que o sistema totalmente preemptível aumente a capacidade de resposta do desktor, enquanto o uso voluntário preemptivo é para uso geral (combinação de capacidade de resposta e troughput). Se o seu servidor tem SMP (múltiplos núcleos), você provavelmente deve optar pelo não preempção, já que a maioria do trabalho será executado em seus núcleos e sem interrupções, o que geralmente 1) leva tempo 2) cache de lixo

3) 1000Hz é o valor de desktop que introduz a sobrecarga, mas permite, por exemplo, jogar jogos e outras coisas. 300 hz é o valor recomendado para o vídeo (para que as coisas possam ser reprogramadas e você ainda não sentirá falta de frames), enquanto 100Hz oferece o melhor troughput (embora não seja voltado para material de rede de baixa latência).

Se você quiser ficar tão estável quanto possível (sem usar patches RT), você deve ir: carrapatos periódicos (estabilidade) não preemptiva (estabilidade) temporizador-frequência (até você, 1000 para melhor resposta e baixas latências, 100 para melhor troughput, mas resolução de 10ms no temporizador, por exemplo, o material será executado pelo menos 10ms)

Espero que isso ajude um pouco.

    
por 24.11.2013 / 16:30