Aufgabentyp (TT) ist ein alternativer CPU -Scheduler für Linux.
Das Ziel des Tit -Schedulers (Task Type Type Type) ist es, Aufgabentypen basierend auf ihrem Verhalten zu erkennen und die Zeitplanung basierend auf ihren Typen zu steuern. Es gibt 5 Typen:
Finden Sie die Beschreibungen und Erkennungsregeln in tasks.ods
Der Vorteil von Aufgabentypen besteht darin, dass der Scheduler mehr Kontrolle hat und die beste Aufgabe auswählt, die als nächstes in der CPU ausgeführt wird.
TT gibt RT -Aufgaben einen -20 -Prio in VRuntime -Berechnungen. Dies steigert die RT -Aufgaben über andere Aufgaben. Die Vorstellungsregeln sind rein hRRN, bei denen RT -Aufgaben eine Priorität haben, da ihre Vruntimes relativ geringer sind als andere Typen. Der Grund für die Verwendung von HRRN anstelle einer harten Picking besteht darin, die Prämitionen zu glätten und jegliche Wahrscheinlichkeit eines Hungers zu verhindern.
Sie müssen mit CONFIG_SCHED_DEBUG=y kompilieren. Ich habe ein Feld in die Ausgabe von Tasks Information task_type hinzugefügt. Sehen und verwenden Sie ttdebug.sh .
Verwendungsbeispiele:
ttdebug.sh | grep -i realtime
watch -t "(ttdebug.sh | grep -i interactive)"
watch -t "(ttdebug.sh | egrep -i 'webco|firefox')"
HINWEIS: Aufgrund ihres Verhaltens werden Aufgabentypen erkannt, nicht danach, was es sein sollte. Wenn Systemd also irgendwann wie eine Echtzeitaufgabe wirkte und für lange schlafen würde, wäre der Typ in Echtzeit, bis er aufwacht und seinen Typ aktualisiert wird. Möglicherweise sehen Sie viele Schlafaufgaben mit falschen Typen, da sie sich irgendwann wie in Echtzeit, CPU_Bound oder irgendeinem Typ verhalten haben. Diese Aufgaben schlafen lange Zeit. Wenn sie also aufwachen, sind sie interazitve Sinus, sie haben einen sehr hohen Wert. Machen Sie sich also keine Sorgen über die Art der Schlafsystemprozesse.
s kernel.sched_tt_max_lifetime
Standard ist 22s. Dies ist die maximale Lebenszeit der Aufgaben, um ihre Lebenszeit und ihre Vruntime zu normalisieren. Ähnlich wie bei Cacules cacule_max_lifetime .
kernel.sched_tt_rt_prio Standard ist -20. Bereich [-20, 19]. Falls Aufgaben mit anderen Typen als Echtzeit wegen der Prioritäten der Echtzeitaufgaben hungern, können Sie die Priorität von Echtzeitaufgaben erweichen. Der -20 ist der höchste, 19 hat die geringste Priorität.
kernel.sched_tt_interactive_prio Standard ist -10. Bereich [-20, 19].
kernel.sched_tt_cpu_bound_prio Standard ist -15. Bereich [-20, 19].
kernel.sched_tt_batch_prio Standard ist 19. Bereich [-20, 19].
kernel.sched_tt_balancer_opt
Es kann auf 4 Werte eingestellt werden:
Sie können die Ausgleichsoption zur Laufzeit ändern.
kernel.sched_tt_lat_sens_enabled Standard ist 1. Latenzempfindlich hält CPUs (ohne Aufgaben) für einige Zeiten (~ 1 ms) bei eingehender Aufgabe während dieser Zeit schneller. Es reduziert die Latenz, erhöht jedoch den Stromverbrauch. Wenn Power Save Balancer ausgewählt wird, hat diese Option keinen Effekt (dh deaktiviert, = 0).
kernel.sched_tt_dedicated_cpu_bound_enabled Standard ist 1. Diese Option kleben Sie eine CPU -gebundene Aufgabe an ihre aktuelle CPU, um die Cache -Lokalität zu verbessern. Eine CPU kann nur eine dedizierte CPU -gebundene Aufgabe haben.
Telegramm: https://t.me/tt_Sched
Danke
Hamad