El tipo de tarea (TT) es un programador de CPU alternativo para Linux.
El objetivo del programador del tipo de tarea (TT) es detectar los tipos de tareas en función de sus comportamientos y controlar la programación en función de sus tipos. Hay 5 tipos:
Encuentre las descripciones y las reglas de detección en tasks.ods
El beneficio de los tipos de tareas es permitir que el planificador tenga más control y elija la mejor tarea para ejecutar a continuación en la CPU.
TT le da a las tareas RT un PRIO -20 en los cálculos de Vruntime. Esto aumenta las tareas de RT sobre otras tareas. Las reglas de preferencia son puramente HRRN donde las tareas de RT tienen prioridad ya que sus vruntimes son relativamente menores que otros tipos. La razón del uso de HRRN en lugar de la selección de nivel duro es suavizar las preemciones y evitar cualquier posibilidad de inanición.
Debe compilar con CONFIG_SCHED_DEBUG=y . He agregado un campo en la información de la salida de tareas task_type . Ver y usar ttdebug.sh .
Ejemplos de uso:
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
Nota: Los tipos de tareas se detectan en función de su comportamiento, no por lo que debería ser. Entonces, si Systemd en algún momento actuara como una tarea en tiempo real y durmió mucho, el tipo sería en tiempo real hasta que se despierte y se actualice su tipo. Es posible que vea muchas tareas para dormir con tipos incorrectos porque en algún momento en el tiempo de arranque actuaron como en tiempo real, CPU_bound o cualquier tipo. Esas tareas duermen durante mucho tiempo, por lo que cuando se despierten, su tipo será interacito sinuso, tienen un valor muy difícil de HRRN. Por lo tanto, no se preocupe por el tipo de procesos del sistema de sueño.
s kernel.sched_tt_max_lifetime
El valor predeterminado es 22s. Este es el tiempo máximo de la vida de las tareas para normalizar su tiempo de vida y su vruntime. Similar a cacule_max_lifetime de Cacule.
kernel.sched_tt_rt_prio El valor predeterminado es -20. Rango [-20, 19]. En caso de que las tareas con tipos distintos de tiempo real sean hambrientos debido a que las prioridades de las tareas en tiempo real sean demasiado altas, puede suavizar la prioridad de las tareas en tiempo real. El -20 es el más alto, 19 es la menor prioridad.
kernel.sched_tt_interactive_prio predeterminado es -10. Rango [-20, 19].
kernel.sched_tt_cpu_bound_prio predeterminado es -15. Rango [-20, 19].
kernel.sched_tt_batch_prio El valor predeterminado es 19. Rango [-20, 19].
kernel.sched_tt_balancer_opt
Se puede establecer en 4 valores:
Puede cambiar la opción Balancer en el momento de ejecución.
kernel.sched_tt_lat_sens_enabled El valor predeterminado es 1. La latencia sensible mantiene las CPU (sin tareas) a alta frecuencia durante algún tiempo (~ 1 ms) en caso de tarea entrante durante este tiempo se ejecutaría más rápido. Reduce la latencia pero aumenta el consumo de energía. Si se elige el equilibrio de guardado de potencia, entonces esta opción no tiene efecto (es decir, deshabilitado, = 0).
kernel.sched_tt_dedicated_cpu_bound_enabled Elfault es 1. Esta opción adhiere una tarea unida a CPU a su CPU actual para mejorar la localidad de caché. Una CPU solo puede tener una tarea de CPU dedicada.
Telegrama: https://t.me/tt_sched
Gracias
Hamad