Tipo de tarefa (TT) é um agendador alternativo da CPU para Linux.
O objetivo do agendador de Tipo de Tarefa (TT) é detectar tipos de tarefas com base em seus comportamentos e controlar o agendamento com base em seus tipos. Existem 5 tipos:
Encontre as descrições e as regras de detecção em tasks.ods
O benefício dos tipos de tarefas é permitir que o agendador tenha mais controle e escolha a melhor tarefa para executar a seguir na CPU.
O TT fornece tarefas de RT a -20 PRIO em cálculos de Vruntime. Isso aumenta as tarefas de RT sobre outras tarefas. As regras de preempção são puramente hrrn, onde as tarefas de RT têm uma prioridade, uma vez que suas vezes são relativamente menores que outros tipos. O motivo de usar o HRRN em vez de escolher o nível difícil é suavizar as prematuras e evitar qualquer chance de fome.
Você precisa compilar com CONFIG_SCHED_DEBUG=y . Eu adicionei um campo na saída das tarefas Informações task_type . Veja e use ttdebug.sh .
Exemplos de uso:
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
Nota: Os tipos de tarefas são detectados com base em seu comportamento, não pelo que deveria ser. Portanto, se o Systemd, em algum momento, agisse como tarefas em tempo real e dormisse longo, o tipo seria em tempo real até acordar e atualizar seu tipo. Você pode ver muitas tarefas de dormir com tipos incorretos, porque em algum momento de inicialização eles agiram como tempo real, cpu_bound ou qualquer tipo. Essas tarefas estão dormindo há muito tempo; portanto, quando acordarem, seu tipo será interacitado seno, eles têm um valor muito alto. Portanto, não se preocupe com o tipo de processos do sistema de dormir.
s kernel.sched_tt_max_lifetime
O padrão é 22s. Este é o tempo de vida máximo das tarefas para normalizar seu tempo de vida e Vruntime. Semelhante ao cacule cacule_max_lifetime .
kernel.sched_tt_rt_prio padrão é -20. Alcance [-20, 19]. Caso que as tarefas com outros tipos que não sejam em tempo real estejam morrendo de fome, devido às prioridades das tarefas em tempo real, são muito altas, você pode suavizar a prioridade das tarefas em tempo real. O -20 é o mais alto, 19 é a menor prioridade.
kernel.sched_tt_interactive_prio padrão é -10. Alcance [-20, 19].
kernel.sched_tt_cpu_bound_prio padrão é -15. Alcance [-20, 19].
kernel.sched_tt_batch_prio padrão é 19. Range [-20, 19].
kernel.sched_tt_balancer_opt
Pode ser definido como 4 valores:
Você pode alterar a opção Balancer no tempo de execução.
kernel.sched_tt_lat_sens_enabled padrão é 1. A latência sensível mantém as CPUs (sem tarefas) em alta frequência por algum tempo (~ 1ms) em caso de tarefa de entrada durante esse período, funcionaria mais rapidamente. Reduz a latência, mas aumenta o consumo de energia. Se o Power Save Balancer for escolhido, essa opção não terá efeito (ou seja, desativado, = 0).
kernel.sched_tt_dedicated_cpu_bound_enabled padrão é 1. Esta opção coloca uma tarefa ligada à CPU à sua CPU atual para aprimorar a localidade do cache. Uma CPU pode ter apenas uma tarefa ligada à CPU dedicada.
Telegram: https://t.me/tt_sched
Obrigado
Hamad