Lancer un programme en basse priorité CPU et I/O disque

Décembre 2016

Il arrive qu'on veuille lancer certaines opérations lourdes en arrière plan sans ralentir les autres logiciels. Par exemple:
  • Copie de fichiers
  • Backups
  • Indexation (updatedb par exemple).


C'est tout à fait possible avec nice et ionice.
  • nice permet de réduire la priorité d'un processus sur le CPU
  • ionice permet de réduire la priorité d'un processus sur les accès disque.

Lancer un programme


ionice -c3 nice -n15 monprogramme


Le programme ainsi lancé ne pourra consommer du CPU et faire des accès disque que quand aucun autre programme n'en a besoin.

Dans un script shell


Placez au début de votre script shell:

#!/bin/sh
ionice -c3 -p$$
renice +15 -p $$


Le shell aura sa priorité réduite (et donc aussi tous les programmes lancés à partir de ce shell).

C'est utile par exemple dans les scripts lancé dans /etc/cron.*
(Typiquement, vous pouvez ajouter ces lignes dans votre script /etc/cron.daily/slocate)

Note

  • nice et renice peuvent être utilisés par tout le monde
  • ionice avec -c3 ne peut être utilisé que par root.

Liens


Cet article a été inspiré par: Why aren’t you using ionice yet ?

A voir également :

Ce document intitulé «  Lancer un programme en basse priorité CPU et I/O disque  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.