20.4. Configurando o tempo de tick kernel


Por default, o Red Hat Enterprise Linux 8 usa um kernel sem tickless, que não interrompe CPUs ociosas a fim de reduzir o uso de energia e permitir que novos processadores tirem vantagem dos estados de sono profundo.

O Red Hat Enterprise Linux 8 também oferece uma opção dinâmica sem tickless, que é útil para cargas de trabalho sensíveis à latência, tais como computação de alto desempenho ou computação em tempo real. Por default, a opção dinâmica sem tickless está desativada. Este procedimento descreve como ativar de forma persistente o comportamento dinâmico sem tickless.

Procedimento

  1. Para permitir um comportamento dinâmico sem tickless em certos núcleos, especifique esses núcleos na linha de comando do kernel com o parâmetro nohz_full. Em um sistema de 16 núcleos, anexar este parâmetro no arquivo /etc/default/grub:

    nohz_full=1-15
    Copy to Clipboard Toggle word wrap

    Isto permite um comportamento dinâmico sem cócegas nos núcleos 1 a 15, movendo-se todo o tempo para o único núcleo não especificado (núcleo 0).

  2. Para ativar persistentemente o comportamento dinâmico sem cócegas, regenerar a configuração do GRUB2 usando o arquivo padrão editado. Em sistemas com firmware BIOS, executar o seguinte comando:

    # grub2-mkconfig -o /etc/grub2.cfg
    Copy to Clipboard Toggle word wrap

    Em sistemas com firmware UEFI, executar o seguinte comando:

    # grub2-mkconfig -o /etc/grub2-efi.cfg
    Copy to Clipboard Toggle word wrap
  3. Quando o sistema inicia, mova manualmente os fios rcu para o núcleo não sensível à latência, neste caso, o núcleo 0:

    # for i in `pgrep rcu[^c]` ; do taskset -pc 0 $i ; done
    Copy to Clipboard Toggle word wrap
  4. Opcional: Use o parâmetro isolcpus na linha de comando do kernel para isolar certos núcleos das tarefas de espaço do usuário.
  5. Opcional: Ajuste a afinidade da CPU para os fios do kernel write-back bdi-flush para o núcleo de manutenção da casa:

    echo 1 > /sys/bus/workqueue/devices/writeback/cpumask
    Copy to Clipboard Toggle word wrap

Etapas de verificação

  • Quando o sistema for reinicializado, verifique se dynticks está habilitado:

    # grep dynticks var/log/dmesg
    [    0.000000] NO_HZ: Full dynticks CPUs: 2-5,8-11
    Copy to Clipboard Toggle word wrap
  • Verificar se a configuração dinâmica sem tickless está funcionando corretamente:

    # perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 stress -t 1 -c 1
    Copy to Clipboard Toggle word wrap

    Aqui, stress é um programa que gira sobre a CPU para 1 second.

  • Um possível substituto para stress é um roteiro que executa:

    while :; do d=1; done
    Copy to Clipboard Toggle word wrap

    A configuração padrão do temporizador do kernel mostra 1000 ticks em uma CPU ocupada:

    # perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 stress -t 1 -c 1
    1000 irq_vectors:local_timer_entry
    Copy to Clipboard Toggle word wrap
  • Com o núcleo dinâmico sem tickless configurado, você deve ver 1 tick em seu lugar:

    # perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 stress -t 1 -c 1
    1 irq_vectors:local_timer_entry
    Copy to Clipboard Toggle word wrap
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat