ionice - Obtenir ou définir la classe et la priorité
d'ordonnancement des entrées et sorties d'un processus
ionice [-c classe] [-n niveau]
[-t] -p PID
ionice [-c classe] [-n niveau]
[-t] -P PGID
ionice [-c classe] [-n niveau]
[-t] -u UID
ionice [-c classe] [-n niveau]
[-t] commande [argument] ...
Ce programme définit ou lit la priorité et la classe
d’ordonnancement des entrées et sorties d’un programme.
S’il n’y a pas de paramètre ou si seul -p est
donné, ionice demandera la classe et la priorité
actuelle d’ordonnancement d’entrées et sorties pour ce
processus.
Si la commande est fournie, ionice exécutera
cette commande avec les arguments fournis. Si aucune classe
n’est indiquée, la commande sera exécutée
avec la classe d’ordonnancement au mieux. Le niveau de
priorité par défaut est 4.
Un processus peut appartenir à l’une de ces trois
classes d’ordonnancement :
Au ralenti (« idle »)
Un programme s’exécutant avec une
priorité d’entrées et sorties au ralenti
n’obtiendra du temps pour accéder au disque que si aucun autre
programme ne demande des entrées et sorties sur les disques pendant une
période donnée. L’impact d’un processus avec une
classe d’ordonnancement d’entrées et sorties au
ralenti sur l’activité normale du système devrait
être nul. Cette classe d’ordonnancement de processus ne prend
pas de priorité en paramètre. Cette classe
d’ordonnancement est permise pour un simple utilisateur (depuis
Linux 2.6.25).
Au mieux (« best-effort »)
C’est la classe d’ordonnancement par
défaut pour chaque processus qui n’a pas demandé une
priorité spécifique d’entrées et sorties. Les
programmes héritent des paramètres de politesse
(« nice ») du processeur pour les priorités
d’entrées et sorties. Cette classe prend une priorité en
paramètre dans la gamme
0-7, où un nombre plus bas sera
d’une priorité plus haute. Les programmes en cours
d’exécution ayant la même priorité
au mieux
sont servis les uns après les autres.
Notez qu’avant le noyau 2.6.26, un processus qui
n’a pas demandé de priorité d’entrées et
sorties utilise la classe d’ordonnancement
« none » (aucune), mais
l’ordonnanceur d’entrées et sorties traitera un tel
processus comme s’il était de la classe au mieux. La
priorité dans la classe au mieux sera dynamiquement
dérivée du niveau de politesse processeur du processus
d’entrées et sorties :
« io_priority » =
(politesse_cpu + 20) / 5.
Pour les noyaux postérieurs à 2.6.26 avec
l’ordonnanceur d’entrées et sorties CFQ, un processus
qui n’a pas demandé de priorité d’entrées
et sorties hérite de la classe d’ordonnancement de son
processeur. La priorité d’entrées et sorties est
dérivée du niveau de politesse processeur du processus
d’entrées et sorties (comme avant le noyau 2.6.26).
Temps réel
(« realtime »)
La classe d’ordonnancement temps
réel donne d’abord l’accès au disque, sans se
soucier des autres exécutions sur le système. De ce fait, la
classe temps réel doit être utilisée avec
attention, car elle peut « affamer »
d’autres processus. Comme la classe au mieux, 8 niveaux
de priorité sont définis dénotant la période de
temps qu’un processus donné recevra dans chaque fenêtre
d’ordonnancement. Cette classe d’ordonnancement n’est pas
permise pour un simple utilisateur (c’est-à-dire, non
superutilisateur).
-c, --class classe
Indiquer le nom ou le numéro de la classe
d’ordonnancement à utiliser : 0 pour aucune,
1 pour temps réel, 2 pour au mieux,
3 pour au ralenti.
-n, --classdata niveau
Indiquer les données de la classe
d’ordonnancement. Cela n’a d’effet que si la classe
accepte un paramètre. Pour les classes temps réel et
au mieux, les données valables sont dans l’intervalle
0-7 (niveaux de priorité) et 0 représente le
niveau de priorité le plus élevé.
-p, --pid PID...
Indiquer les identifiants de processus des processus en
cours d’exécution desquels obtenir ou définir les
paramètres d’ordonnancement.
-P, --pgid PGID...
Indiquer les identifiants de groupe de processus des
processus en cours d’exécution desquels obtenir ou
définir les paramètres d’ordonnancement.
-t, --ignore
Ignorer les échecs de définition de la
priorité demandée. Si commande était fournie, le
programme est exécuté même s’il
n’était pas possible de définir la priorité
d’ordonnancement demandée, ce qui peut arriver à cause de
droits insuffisants ou d’une vieille version du noyau.
-u, --uid UID...
Indiquer les identifiants d’utilisateur de
processus des processus en cours d’exécution desquels obtenir ou
définir les paramètres d’ordonnancement.
-h, --help
Afficher l’aide-mémoire puis quitter.
-V, --version
Afficher le numéro de version et quitter.
Linux prend en charge des priorités et classes
d’ordonnancement d’entrées et sorties
depuis 2.6.13 avec l’ordonnanceur d’entrées et
sorties CFQ.
•# ionice -c 3 -p 89
Définit le processus avec le PID 89 comme un processus de
la classe d’entrées et sorties au ralenti.
•# ionice -c 2 -n 0 bash
Exécute « bash » comme un
programme au mieux avec la priorité la plus
élevée.
•# ionice -p 89 91
Renvoie la classe et la priorité des processus des PID 89
et 91.
Jens Axboe <jens@axboe.dk>, Karel Zak
<kzak@redhat.com>
Pour signaler un bogue, utilisez le gestionnaire de bogues sur
<https://github.com/util-linux/util-linux/issues>.
La commande ionice fait partie du paquet util-linux, elle
est disponible sur l’archive du noyau Linux
<https://www.kernel.org/pub/linux/utils/util-linux/>.