Le type de tâche (TT) est un planificateur de processeur alternatif pour Linux.
L'objectif du planificateur de type de tâche (TT) est de détecter les types de tâches en fonction de leurs comportements et de contrôler la planification en fonction de leurs types. Il y a 5 types:
Trouver les descriptions et les règles de détection dans tasks.ods
L'avantage des types de tâches est de permettre au planificateur d'avoir plus de contrôle et de choisir la meilleure tâche pour s'exécuter ensuite dans le CPU.
TT donne des tâches RT un -20 prio dans les calculs de vruntime. Cela augmente les tâches RT sur d'autres tâches. Les règles de préemption sont purement HRRN où les tâches RT ont une priorité car leurs vruntimes sont relativement inférieurs aux autres types. La raison de l'utilisation de HRRN au lieu de cueillette de niveau dure est de lisser les prémtions et d'éviter toute chance de famine.
Vous devez compiler avec CONFIG_SCHED_DEBUG=y . J'ai ajouté un champ dans la sortie des tâches Information task_type . Voir et utiliser ttdebug.sh .
Exemples d'utilisation:
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
Remarque: les types de tâches sont détectés en fonction de leur comportement, et non par ce qu'il devrait être. Donc, si Systemd à un moment donné agissait comme des tâches en temps réel et allait pour longtemps, le type serait en temps réel jusqu'à ce qu'il se réveille et que son type soit mis à jour. Vous pourriez voir de nombreuses tâches de sommeil avec des types incorrects, car à un moment donné au moment du démarrage, ils ont agi comme en temps réel, cpu_bound ou tout type. Ces tâches dorment depuis longtemps, donc lorsqu'ils se réveillent, leur type sera interacutve, ils ont une valeur de HRRN très très élevée. Alors, ne vous inquiétez pas du type de processus du système de sommeil.
s kernel.sched_tt_max_lifetime
La valeur par défaut est 22S. Il s'agit du maximum de la vie des tâches pour normaliser leur vie et leur vruntime. Semblable à Cacule cacule_max_lifetime .
kernel.sched_tt_rt_prio La défaut est -20. Gamme [-20, 19]. Dans le cas où les tâches avec des types autres que le temps réel sont affamées en raison des priorités des tâches en temps réel sont trop élevées, vous pouvez adoucir la priorité des tâches en temps réel. Le -20 est le plus élevé, 19 est la moindre priorité.
kernel.sched_tt_interactive_prio La défaut est -10. Gamme [-20, 19].
kernel.sched_tt_cpu_bound_prio La défaut est -15. Gamme [-20, 19].
kernel.sched_tt_batch_prio La défaut est 19. Plage [-20, 19].
kernel.sched_tt_balancer_opt
Il peut être défini sur 4 valeurs:
Vous pouvez modifier l'option Balancer au moment de l'exécution.
kernel.sched_tt_lat_sens_enabled La défaillance est 1. La latence sensible à la latence maintient les CPU (sans tâches) à haute fréquence pendant un certain temps (~ 1 ms) en cas de tâche entrante pendant cette période fonctionnerait plus rapidement. Il réduit la latence mais augmente la consommation d'énergie. Si l'équilibreur Power Save est choisi, cette option n'a aucun effet (c'est-à-dire désactivé, = 0).
kernel.sched_tt_dedicated_cpu_bound_enabled par défaut est 1. Cette option colle une tâche liée au processeur à son processeur actuel pour améliorer la localité du cache. Un processeur ne peut avoir qu'une seule tâche de liaison du CPU dédiée.
Télégramme: https://t.me/tt_sched
Merci
Hamad