IONICE(1) Polecenia użytkownika IONICE(1)

ionice - ustawia lub pobiera klasę i priorytet szeregowania wejścia/wyjścia

ionice [-c klasa] [-n poziom] [-t] -p PID

ionice [-c klasa] [-n poziom] [-t] -P PGID

ionice [-c klasa] [-n poziom] [-t] -u UID

ionice [-c klasa] [-n poziom] [-t] polecenie [argument] ...

Program ustawia lub pobiera klasę i priorytet szeregowania wejścia/wyjścia programu. Jeśli nie poda się argumentu, lub poda tylko -p, ionice odpyta o bieżącą klasę i priorytet szeregowania wejścia/wyjścia danego procesu.

Jeśli poda się polecenie, ionice uruchomi je z podanymi argumentami. Jeśli nie poda się klasy to polecenie zostanie wykonane z klasą szeregowania "best-effort". Domyślnym poziomem priorytetu jest 4.

Według stanu na moment sporządzania niniejszej dokumentacji, proces może być w jednej z trzech klas szeregowania:

Idle

Program działający z priorytetem wejścia/wyjścia "idle" (bezczynności) uzyska dostęp do dysku tylko wtedy, gdy inny program nie zażądał wejścia/wyjścia do dysku przez zdefiniowany okres. Wpływ procesu z tym priorytetem na zwykłą aktywność systemu powinien być zerowy. Ta klasa szeregowania nie przyjmuje argumentu priorytetu. Obecnie, jest ona dozwolona dla zwykłych użytkowników (od jądra 2.6.25).

Best-effort

Klasa szeregowania jaką efektywnie otrzymują procesy, które nie zażądały konkretnego priorytetu wejścia/wyjścia. Ta klasa przyjmuje argument priorytetu z zakresu 0-7, gdzie mniejsza liczba oznacza wyższy priorytet. Programy działające z taki samym priorytetem "best-effort" otrzymają dostęp rotacyjnie.

Proszę zauważyć, że przed jądrem 2.6.26 proces, który nie zażądał priorytetu wejścia/wyjścia formalnie używał klasy szeregowania "none", jednak dyspozytor wejścia/wyjścia będzie traktował takie procesy jak gdyby były w klasie "best-effort". Priorytet w klasie "best-effort" jest automatycznie obliczany na podstawie wartości nice procesora danego procesu, według wzoru: io_priority = (cpu_nice + 20) / 5.

W przypadku jąder w wersji nowszej niż 2.6.26 z dyspozytorem wejścia/wyjścia CFQ, proces, który nie zażądał priorytetu wejścia/wyjścia odziedziczy swą klasę szeregowania procesora. Jego priorytet wejścia/wyjścia jest obliczany na podstawie jego wartości nice procesora (tak jak przed jądrem 2.6.26).

Realtime

Klasa szeregowania czasu rzeczywistego otrzymuje dostęp do dysku jako pierwsza, niezależnie od tego, co innego dzieje się w systemie. Z tego względu należy ją stosować ostrożnie, ponieważ może zagłodzić inne procesy. Podobnie jak przy klasie "best-effort", zdefiniowano 8 poziomów priorytetów, które określają jak duży kwant czasu otrzyma dany proces w każdym oknie szeregowania. Ta klasa szeregowania jest niedostępna dla zwykłych (tj. niebędących rootem) użytkowników.

-c, --class klasa

Określa nazwę lub numer klasy szeregowania do zastosowania: "0" oznacza none, "1" - realtime, "2" - best-effort, a "3" to idle.

-n, --classdata poziom

Przekazuje dane klasie szeregowania. Odnosi skutek tylko, gdy dana klasa przyjmuje argument. W przypadku klas szeregowania "realtime" i "best-effort", prawidłowymi danymi są wartości w przedziale 0-7 (poziomy priorytetów), przy czym "0" reprezentuje najwyższy poziom priorytetu.

-p, --pid PID...

Określa identyfikatory procesów działających procesów, których parametry szeregowania mają być pobrane lub ustawione.

-P, --pgid PGID...

Określa identyfikatory grup procesów działających procesów, których parametry szeregowania mają być pobrane lub ustawione.

-t, --ignore

Ignoruje nieudane ustawienie żądanego priorytetu. Jeśli podano polecenie, uruchamia je nawet wtedy, gdy nie dało się ustawić oczekiwanego priorytetu szeregowania, co może wynikać z niedostatecznych przywilejów lub działania na starej wersji jądra.

-u, --uid UID...

Określa identyfikatory użytkowników działających procesów, których parametry szeregowania mają być pobrane lub ustawione.

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

Linux obsługuje priorytety i klasy szeregowania wejścia/wyjścia od wersji 2.6.13, za pomocą dyspozytora wejścia/wyjścia CFQ.

•# ionice -c 3 -p 89

Ustawia proces o identyfikatorze procesu 89 jako proces w klasie "idle".

•# ionice -c 2 -n 0 bash

Uruchamia "bash" jako program w klasie "best-effort" o najwyższym priorytecie.

•# ionice -p 89 91

Wypisuje klasę i priorytet procesów o identyfikatorach procesów 89 i 91.

Jens Axboe <jens@axboe.dk>, Karel Zak <kzak@redhat.com>

ioprio_set(2)

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Polecenie ionice jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2026-09-02 util-linux 2.42.3