CHRT(1)

BEZEICHNUNG
chrt - die Echtzeitattribute eines Prozesses manipulieren

ÜBERSICHT

chrt [Optionen] [Priorität] Befehl [Argument …]

chrt --pid [Optionen] [Priorität] PID

BESCHREIBUNG

chrt setzt oder ermittelt die Echtzeit-Scheduling-Attribute eines existierenden Prozesses mit der Kennung PID oder führt einen Befehl mit den angegebenen Attributen aus.

REGELOPTIONEN

-o, --other
    setzt die Scheduling-Regel auf SCHED_OTHER (zeitbasiertes Scheduling). Dies ist die Vorgabe unter Linux. Seit util-linux v2.42 ist das Priorität-Argument optional; falls angegeben, muss es auf Null gesetzt werden.

-f, --fifo
    setzt die Scheduling-Regel auf SCHED_FIFO (zuerst hinein - zuerst hinaus).

-r, --rr
    setzt die Scheduling-Regel auf SCHED_RR (Rundlauf-Scheduling, »round-robin«). Wenn keine Regel definiert ist, wird SCHED_RR als Vorgabe verwendet.

-b, --batch
    setzt die Scheduling-Regel auf SCHED_BATCH (Stapelverarbeitungsprozess-Scheduling). Linux-spezifisch, unterstützt seit 2.6.16. Seit util-linux v2.42 ist das Priorität-Argument optional; falls angegeben, muss es auf Null gesetzt werden.

-i, --idle
    setzt die Scheduling-Regel auf SCHED_IDLE (Scheduling von Prozessen niedriger Priorität). Linux-spezifisch, unterstützt seit 2.6.23. Seit util-linux v2.42 ist das Priorität-Argument optional; falls angegeben, muss es auf Null gesetzt werden.

-d, --deadline
    legt die Scheduling-Regel auf SCHED_DEADLINE fest (»sporadic task model deadline scheduling«). Linux-spezifisch, seit 3.14 unterstützt). Seit util-linux v2.42 ist das Priorität-Argument optional; falls angegeben, muss es auf Null gesetzt werden. Siehe auch --sched-runtime, --sched-deadline und --sched-period. Der Zusammenhang zwischen den vom Kernel verlangten Optionen ist Laufzeit ⇐ deadline ⇐ Periode. chrt kopiert period nach deadline, falls --sched-deadline nicht angegeben ist und deadline nach runtime, falls --sched-runtime nicht angegeben ist. Das bedeutet, dass mindestens --sched-period angegeben sein muss. Siehe sched(7) für weitere Details.

-e, --ext
    Set scheduling policy to SCHED_EXT (BPF program-defined scheduling). Linux-specific, supported since 6.12. Since util-linux v2.42, the priority argument is optional; if specified, it must be set to zero. Note that for the policy to be recognized, the following kernel configuration options need to be enabled: CONFIG_BPF, CONFIG_SCHED_CLASS_EXT, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_DEBUG_INFO_BTF, CONFIG_BPF_JIT_ALWAYS_ON and CONFIG_BPF_JIT_DEFAULT_ON.

SCHEDULING-OPTIONEN

-T, --sched-runtime Nanosekunden
    gibt den Laufzeitparameter für SCHED_DEADLINE und die benutzerdefinierte Slice-Länge für die Richtlinien SCHED_OTHER und SCHED_BATCH (Linux-spezifisch) an. Beachten Sie, dass die benutzerdefinierte Slice-Länge über den Laufzeitparameter seit Linux 6.12 unterstützt wird.

-P, --sched-period Nanosekunden
    gibt den Periodenparameter für die SCHED_DEADLINE-Regel an (Linux-spezifisch). Beachten Sie, dass die untere Grenze des Kernels bei 100 Mikrosekunden liegt.

-D, --sched-deadline Nanosekunden
    gibt den Deadline-Parameter für die SCHED_DEADLINE-Regel an (Linux-spezifisch).

-R, --reset-on-fork
    fügt SCHED_RESET_ON_FORK oder SCHED_FLAG_RESET_ON_FORK hinzu (Linux-spezifisch, unterstützt seit 2.6.31).

    Jeder Thread hat einen Scheduling-Schalter reset-on-fork. Wenn dieser Schalter gesetzt ist, erben von fork(2) erzeugte Kindprozesse nicht die privilegierten Scheduling-Regeln. Nachdem der Schalter reset-on-fork aktivert wurde, kann er nur zurückgesetzt werden, wenn der der Thread über die Capability CAP_SYS_NICE verfügt. Dieser Schalter ist in von fork(2) erzeugten Kindprozessen deaktiviert.

    Genauer gesagt, falls der Schalter reset-on-fork gesetzt ist, werden die folgenden Regeln für nachfolgend erzeugte Kinder angewendet:

        • Falls die Scheduling-Regel des aufrufenden Threads auf SCHED_FIFO oder SCHED_RR gesetzt ist, wird die Regel in Kindprozessen auf SCHED_OTHER zurückgesetzt.

        • Falls der aufrufende Prozess einen negativen Nice-Wert hat, wird der Nice-Wert in Kindprozessen auf 0 zurückgesetzt.

OPTIONEN

-a, --all-tasks
    setzt oder ermittelt die Scheduling-Attribute aller Prozesse (Threads) für eine gegebene Kennung (PID).

-m, --max
    zeigt die minimal und maximal möglichen Prioritäten und beendet dann das Programm.

-p, --pid
    verwendet eine vorhandene Prozesskennung (PID), anstatt einen neuen Prozess zu starten.

-v, --verbose
    zeigt Statusinformationen an.

-h, --help
    zeigt einen Hilfetext an und beendet das Programm.

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

BEISPIELE

Das Standardverhalten ist die Ausführung eines neuen Befehls:

    chrt Priorität Befehl [Argumente]

Sie können auch die Echtzeitattribute eines existierenden Prozesses ermitteln:

    chrt --pid PID

Oder sie festlegen:

    chrt --pid Regeloption Priorität PID

Beispielsweise können Sie folgendermaßen für den Prozess 1234 die Scheduling-Regel SCHED_RR (round-robin) festlegen und die Priorität auf 30 setzen:

    chrt --pid -r 30 1234

Prioritäten für einen Prozess auf die Vorgabe setzen:

    chrt --pid -o 0 PID

Für eine SCHED_OTHER-Task eine benutzerdefinierte Slice-Länge von 1 ms festlegen (Priorität ist optional für andere Richtlinien als SCHED_FIFO und SCHED_RR):

    chrt --pid -o -T 1000000 PID

In sched(7) finden Sie eine detaillierte Beschreibung der verschiedenen Scheduling-Klassen und Informationen darüber, wie diese miteinander interagieren.

ZUGRIFFSRECHTE

Ein Benutzer muss über CAP_SYS_NICE verfügen, um die Scheduling-Attribute eines Prozesses zu ändern. Die Ermittlung der Scheduling-Attribute ist allen Benutzern erlaubt.

ANMERKUNGEN

Nur SCHED_FIFO, SCHED_OTHER und SCHED_RR sind Teil des Prozess-Schedulings nach POSIX 1003.1b. Die anderen Scheduling-Attribute können auf einigen Systemen ignoriert werden.

Die unter Linux vorgegebene Scheduling-Regel ist SCHED_OTHER.

AUTOREN

SIEHE AUCH

nice(1), renice(1), taskset(1), sched(7)

In sched_setscheduler(2) finden Sie eine Beschreibung des Scheduling-Schemas in Linux.

FEHLER MELDEN

Nutzen Sie zum Melden von Fehlern das

VERFÜGBARKEIT

Der Befehl chrt ist Teil des Pakets util-linux, welches aus dem heruntergeladen werden kann.