ionice - stabilește sau obține clasa și
prioritatea de planificare In/Ieș a procesului
ionice [-c clasa] [-n nivel]
[-t] -p PID
ionice [-c clasa] [-n nivel]
[-t] -P PGID
ionice [-c clasa] [-n nivel]
[-t] -u UID
ionice [-c clasa] [-n nivel]
[-t] comanda [argument] ...
Acest program stabilește sau obține clasa și
prioritatea de planificare In/Ieș pentru un program. Dacă nu
se furnizează nici un argument sau se dă doar -p,
ionice va interoga clasa și prioritatea curentă de
planificare In/Ieș pentru acel proces.
Când se dă comanda, ionice va executa
această comandă cu argumentele date. Dacă nu se
specifică clasa, atunci comanda va fi executată
cu clasa de planificare „best-effort”. Nivelul de prioritate
implicit este 4.
În momentul redactării acestui articol, un proces
poate fi încadrat în una dintre cele trei clase de
planificare:
Idle
Un program care rulează cu prioritate de
intrare/ieșire în inactivitate va primi timp pe disc numai
atunci când niciun alt program nu a solicitat In/Ieș pe disc
pentru o perioadă de grație definită. Impactul unui
proces de In/Ieș inactiv asupra activității normale a
sistemului ar trebui să fie zero. Această clasă de
planificare nu acceptă un argument de prioritate. În prezent,
această clasă de planificare este permisă pentru un
utilizator obișnuit (începând cu kernel 2.6.25).
Best-effort
Aceasta este clasa de planificare efectivă pentru
orice proces care nu a cerut o prioritate specifică de In/Ieș.
Această clasă primește un argument de prioritate de la
0-7, un număr mai mic reprezentând o prioritate mai mare.
Programele care rulează cu aceeași prioritate de cel mai bun
efort „best-effort” sunt servite în mod circular.
Rețineți că, înainte de kernel 2.6.26,
un proces care nu a cerut o prioritate de In/Ieș folosește
în mod formal „none” drept clasă de
planificare, dar planificatorul de In/Ieș va trata astfel de procese
ca și cum ar fi în clasa „best-effort”.
Prioritatea în cadrul clasei „best-effort” va fi
derivată dinamic din nivelul de „curtoazie CPU” al
procesului: io_priority = (cpu_nice + 20) / 5.
În cazul nucleelor după 2.6.26 cu planificatorul
In/Ieș CFQ, un proces care nu a cerut o prioritate In/Ieș
moștenește clasa de planificare a CPU. Prioritatea de
In/Ieș este derivată din nivelul de curtoazie
„nice” al procesului în CPU (la fel ca înainte
de nucleul 2.6.26).
Realtime
Clasa de planificare „RT” primește
primul acces la disc, indiferent de ce se întâmplă
în sistem. Prin urmare, clasa „RT” trebuie
utilizată cu o anumită atenție, deoarece poate bloca alte
procese. La fel ca în cazul clasei „best-effort”, sunt
definite 8 niveluri de prioritate care indică cât de mare va fi
partea de timp pe care o va primi un anumit proces la fiecare fereastră
de planificare. Această clasă de planificare nu este
permisă pentru un utilizator obișnuit (adică un
utilizator care nu este root).
-c, --class clasa
Specifică numele sau numărul clasei de
planificare care urmează să fie utilizată;
„0” pentru niciuna, „1” pentru timp real
(realtime), „2” pentru cel mai bun efort (best-effort),
„3” pentru inactivitate (idle).
-n, --classdata nivel
Specifică datele privind clasa de programare.
Acest lucru are efect numai dacă clasa acceptă un argument.
Pentru „realtime” și „best-effort”,
0-7 sunt date valide (niveluri de prioritate), iar „0”
reprezintă cel mai înalt nivel de prioritate.
-p, --pid PID...
Specifică ID-urile proceselor în curs de
execuție pentru care se obțin sau se stabilesc parametrii de
planificare.
-P, --pgid PGID...
Specifică ID-urile grupurilor de procese ale
proceselor în curs de execuție pentru care se obțin sau
se stabilesc parametrii de planificare.
-t, --ignore
Ignoră eșecul de a stabili prioritatea
solicitată. Dacă a fost specificată comanda, se
execută chiar și în cazul în care nu a fost
posibilă stabilirea priorității de planificare dorite,
ceea ce se poate întâmpla din cauza unor privilegii insuficiente
sau a unei versiuni vechi a nucleului.
-u, --uid UID...
Specifică ID-urile de utilizator ale proceselor
în execuție pentru care se obțin sau se stabilesc
parametrii de planificare.
-h, --help
Afișează acest mesaj de ajutor și
iese.
-V, --version
Afișează versiunea și iese.
Linux acceptă prioritățile și clasele
de planificare In/Ieș începând cu versiunea 2.6.13 cu
planificatorul In/Ieș CFQ.
•# ionice -c 3 -p 89
Stabilește procesul cu PID 89 ca proces inactiv de
In/Ieș.
•# ionice -c 2 -n 0 bash
Rulează «bash» ca un program
„best-effort” cu cea mai mare prioritate.
•# ionice -p 89 91
Afișează clasa și prioritatea proceselor cu
PID 89 și 91.
Jens Axboe <jens@axboe.dk>, Karel Zak
<kzak@redhat.com>
Pentru rapoarte de eroare, folosiți sistemul de
urmărire al erorilor
<https://github.com/util-linux/util-linux/issues>.
Comanda ionice face parte din pachetul util-linux care
poate fi descărcat de la Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/>.