CHRT(1)

NAZWA
chrt - zmienia atrybuty czasu rzeczywistego procesu

SKŁADNIA

chrt [opcje] [priorytet] polecenie [argument...]

chrt --pid [opcje] [priorytet] PID

OPIS

chrt ustawia lub pobiera atrybuty szeregowania czasu rzeczywistego istniejącego identyfikatora procesu (PID), albo uruchamia polecenie z podanymi atrybutami.

OPCJE ALGORYTMÓW

-o, --other
    Ustawia algorytm szeregowania SCHED_OTHER (szeregowanie z dzieleniem czasu). Jest to domyślny algorytm szeregowania zadań w Linuksie. Od util-linux v2.42, argument priorytetu jest opcjonalny; jeśli się go poda, musi być ustawiony na zero.

-f, --fifo
    Ustawia algorytm szeregowania na SCHED_FIFO (pierwszy na wejściu, pierwszy na wyjściu).

-r, --rr
    Ustawia algorytm szeregowania na SCHED_RR (szeregowanie rotacyjne). Jeśli nie zdefiniuje się algorytmu, domyślnie stosowany jest właśnie SCHED_RR.

-b, --batch
    Ustawia algorytm szeregowania na SCHED_BATCH (szeregowanie procesów wsadowych). Typowo linuksowy, obsługiwany od Linuksa 2.6.16. Od util-linux v2.42, argument priorytetu jest opcjonalny; jeśli się go poda, musi być ustawiony na zero.

-i, --idle
    Ustawia algorytm szeregowania na SCHED_IDLE (szeregowanie zadań o bardzo niskim priorytecie). Typowo linuksowy, obsługiwany od Linuksa 2.6.23. Od util-linux v2.42, argument priorytetu jest opcjonalny; jeśli się go poda, musi być ustawiony na zero.

-d, --deadline
    Ustawia algorytm szeregowania na SCHED_DEADLINE (szeregowanie sporadyczne z budżetem czasu). Typowo linuksowy, obsługiwany od Linuksa 3.14. Od util-linux v2.42, argument priorytetu jest opcjonalny; jeśli się go poda, musi być ustawiony na zero. Zob. też --sched-runtime, --sched-deadline i --sched-period. Relacja pomiędzy opcjami, wymagana przez jądro, jest taka, że czas działania (runtime) ⇐ limit (deadline) ⇐ okres (period). chrt kopiuje okres do limitu jeśli nie poda się --sched-deadline, a także limit do czasu działania jeśli nie poda się --sched-runtime. Oznacza to, że konieczne jest podanie przynajmniej --sched-period. Więcej szczegółów w podręczniku sched(7).

-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.

OPCJE SZEREGOWANIA

-T, --sched-runtime nanosekundy
    Określa parametr czasu działania algorytmu SCHED_DEADLINE oraz niestandardową długość kwantu czasu w algorytmach SCHED_OTHER i SCHED_BATCH (typowo linuksowe). Proszę zauważyć, że określanie niestandardowej długości kwantu czasu poprzez parametr czasu działania jest obsługiwane od Linuksa 6.12.

-P, --sched-period nanosekundy
    Określa parametr okresu algorytmu SCHED_DEADLINE (typowo linuksowy). Proszę zauważyć, że dolnym limitem jądra jest 100 mikrosekund.

-D, --sched-deadline nanosekundy
    Określa parametr limitu algorytmu SCHED_DEADLINE (typowo linuksowy).

-R, --reset-on-fork
    Używa znacznika SCHED_FLAG_RESET_ON_FORK lub SCHED_RESET_ON_FORK. Typowo linuksowe, obsługiwane od 2.6.31.

    Każdy wątek ma znacznik szeregowania reset-on-fork (zresetuj przy rozwidleniu). Gdy jest ustawiony, potomkowie utworzeniu przy fork(2) nie dziedziczą uprzywilejowanych algorytmów szeregowania. Po włączeniu znacznika reset-on-fork można go zresetować tylko, jeśli wątek ma przywilej CAP_SYS_NICE. Znacznik jest wyłączony w procesach potomnych tworzonych przez fork(2).

    Precyzyjniej: jeśli ustawiono znacznik reset-on-fork, do nowo tworzonych potomków stosują się następujące zasady:

        • Jeśli wątek wywołujący ma ustawiony algorytm szeregowania SCHED_FIFO lub SCHED_RR, algorytm jest resetowany na SCHED_OTHER w procesach potomnych.

        • Jeśli proces wywołujący ma ujemną wartość nice, wartość nice jest resetowana na zero w procesach potomnych.

OPCJE

-a, --all-tasks
    Ustawia lub pobiera atrybuty szeregowania wszystkich zadań (wątków) podanego PID.

-m, --max
    Pokazuje minimalne i maksymalne prawidłowe priorytety, a następnie wychodzi.

-p, --pid
    Działa na istniejącym PID i nie uruchamia nowego zadania.

-v, --verbose
    Pokazuje informacje o stanie.

-h, --help
    Wyświetla ten tekst i wychodzi.

-V, --version
    Wyświetla wersję i wychodzi.

PRZYKŁADY

Domyślnym zachowaniem jest uruchomienie nowego polecenia:

    chrt priorytet polecenie [argumenty]

Można też pobrać atrybuty czasu rzeczywistego istniejącego zadania:

    chrt --pid PID

Albo je ustawić:

    chrt --pid opcja-szeregowania priorytet PID

Na przykład, aby ustawić algorytm szeregowania procesu 1234 na SCHED_RR (rotacyjne) a priorytet na 30:

    chrt --pid -r 30 1234

Resetowanie priorytetu procesu na domyślny:

    chrt --pid -o 0 PID

Ustawia niestandardową długość kwantu czasu zadania szeregowanego algorytmem SCHED_OTHER na 1 ms (priorytet jest opcjonalny w algorytmach innych niż SCHED_FIFO i SCHED_RR):

    chrt --pid -o -T 1000000 PID

Szczegółowy opis różnych typów algorytmów szeregowania oraz interakcji między nimi znajduje się w podręczniku systemowym sched(7).

UPRAWNIENIA

Użytkownik musi posiadać przywilej CAP_SYS_NICE aby zmieniać atrybuty szeregowania procesu. Każdy użytkownik może pobrać informacje dotyczące szeregowania.

UWAGI

Jedynie SCHED_FIFO, SCHED_OTHER i SCHED_RR są częścią standardu POSIX 1003.1b Process Scheduling. Pozostałe atrybuty szeregowania mogą być ignorowane na niektórych systemach.

Domyślnym algorytmem szeregowania w Linuksie jest SCHED_OTHER.

AUTORZY

ZOBACZ TAKŻE

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

Schemat linuksowego szeregowania zadań opisano w podręczniku sched_setscheduler(2).

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie chrt jest częścią pakietu util-linux, który można pobrać ze strony