Remarque: Cette solution ne fonctionne qu'avec le planificateur cfq, comme expliqué ici . Vous devez vérifier lequel est utilisé en émettant
cat /sys/block/sda/queue/scheduler
et changez- le si nécessaire.
Si j'ai bien compris, vous souhaitez qu'un ionice
paramètre soit appliqué à chaque démarrage d'une commande. Vous pouvez le faire de cette façon:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
La première commande crée un fichier VirtualBox
avec le texte entre guillemets comme contenu. Cela devrait avoir le chemin complet vers le programme, car si on ne le spécifie que VirtualBox
cela peut l'interpréter comme le fichier que nous venons de créer et créer une "boucle".
La deuxième commande le rend exécutable, et la troisième déplace ce nouveau fichier dans un dossier qui se trouve devant le dossier bin "système" /usr/bin
, afin que notre nouveau fichier soit exécuté à la place de l'original. La partie "$ @" contient tous les arguments avec lesquels la commande a été invoquée, ils sont donc transmis à la vraie commande VirtualBox.
Selon la réponse ("oui") à cette question de super utilisateur Les processus des enfants héritent-ils des priorités ioniques de leurs parents? Comment vérifiez-vous la priorité d'E / S d'un processus en cours? , cela devrait suffire au ionice
processus parent, comme ceci:
ionice -c 3 VirtualBox
À partir de la ionice
page de manuel , les valeurs de classe de planification d'E / S suivantes sont disponibles:
- 0 pour aucun
- 1 en temps réel
- 2 pour le meilleur effort
- 3 pour inactif (utilisé dans l'exemple ci-dessus)
Un numéro ou un nom de classe peut être utilisé.
En outre, l' -n level
option s'applique aux classes en temps réel et au meilleur effort, avec 0 à 7 comme données valides (niveaux de priorité).