Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.
Linux

Comment gérer la priorité des processus d’E/S sous Linux

Avez-vous déjà copié ou déplacé des dizaines ou des centaines de gigaoctets de données ? Si vous l’avez fait, vous avez sûrement remarqué que le système devient beaucoup moins réactif pendant cette période. Sous Linux, vous pouvez éviter cela à l’aide de la commande ionice.

Contenu

Qu’est-ce que la priorité E/S ?

I/O est l’abréviation d’entrée/sortie. Il existe de nombreux types de périphériques d’E/S, mais dans ce cas, il s’agit de périphériques de stockage.

Chaque processus qui souhaite lire ou écrire des données sur un tel périphérique se voit attribuer une classe de planification et un numéro de priorité (ou valeur « sympathique »). Cela s’applique sous Linux aux systèmes de fichiers tels que ext4. D’autres systèmes de fichiers, tels que ZFS, peuvent implémenter des méthodes légèrement différentes pour planifier les opérations de lecture/écriture sur le disque. De plus, le planificateur CFQ doit être actif pour que cela fonctionne. Vous pouvez vérifier avec

Un processus avec une valeur « nice » élevée a une priorité inférieure. La logique derrière cela est que plus le nombre est élevé, plus le processus est « agréable » pour les autres processus.

Comment fonctionne la priorité d’E/S ?

Un périphérique de stockage a évidemment un nombre limité d’opérations d’E/S qu’il peut effectuer par seconde (IOPS). Ainsi, lorsque deux processus souhaitent lire/écrire en même temps, ils obtiennent chacun une part d’IOPS. S’ils ont la même priorité, ils obtiennent environ 50 % d’IOPS chacun.

Mais les IOPS peuvent sembler abstraites et compliquées. Par souci de simplicité, vous pouvez simplement penser au résultat final : les vitesses de lecture/écriture. Supposons que votre disque puisse écrire avec 100 Mo/s au maximum. Le processus A commence une opération d’écriture. Il écrit sur le disque avec 100 Mo/s. Le processus B arrive et veut écrire sur le même disque. Il écrira avec environ 50 Mo/s, amenant la vitesse d’écriture du processus A à la même valeur, 50 Mo/s. Maintenant, si vous attribuez au processus B une valeur d’E/S plus élevée, il écrira avec 20 Mo/s et laissera le processus A écrire avec 80 Mo/s. Lorsque le processus A est terminé, le processus B commencera à écrire avec 100 Mo/s.

Psssssst :  Comment connecter ma manette PS4 à iOS 13 ?

Cet exemple est utile pour comprendre quelque chose qui pourrait dérouter certaines personnes. Si un processus a une priorité très faible (valeur nice élevée), cela ne signifie pas qu’il écrira lentement tout le temps. S’il s’agit du seul processus utilisant le disque, il lira/écrira à une vitesse maximale. Mais lorsque d’autres processus ont besoin du disque, il s’écartera temporairement et leur permettra d’utiliser plus de bande passante du disque. Pour une opération de copie/écriture qui prendra des heures, c’est une bonne idée de lui donner une faible priorité si vous souhaitez utiliser votre ordinateur pendant ce temps.

Comment utiliser la commande ionice

La syntaxe générale de la commande est :

ionice Planification des cours

Inactif (classe 3) : les processus de cette classe ne lisent/écrivent que lorsqu’aucun autre programme n’a besoin d’accéder au disque. Cela signifie que le processus lit/écrit à pleine vitesse lorsqu’il n’a pas de concurrence. Lorsqu’un autre programme a besoin de temps disque, le processus de la classe inactive ne lit/écrit qu’avec les ressources restantes. À partir de 100 Mo/s, il peut écrire temporairement avec 5 Mo/s, puis revenir à 100 Mo/s lorsque l’autre programme a fini d’accéder au disque. C’est la classe parfaite pour les travaux de longue durée pour lesquels vous ne voulez pas ralentir votre système. Aucune priorité ne doit être spécifiée pour cette classe.

Exemple de commande :

Meilleur effort (classe 2) : prend une valeur de priorité/agréable entre 0 et 7. N’oubliez pas qu’un nombre inférieur signifie une priorité plus élevée. Utilisez cette classe lorsque vous souhaitez affiner le temps disque pour deux processus ou plus.

Par exemple, vous voulez que votre sauvegarde se termine plus rapidement et lui attribuez une belle valeur 0. Vous déplacez également six films sur un autre disque mais n’êtes pas pressé, vous lui attribuez donc une belle valeur de 7.

Exemple de commande :

Ionice Priorité 0 Vs Priorité 7

Temps réel (classe 1) : ne doit être utilisé que s’il est vital que le processus écrive dès que possible, sans être interrompu par d’autres programmes. La plupart des utilisateurs n’en auront jamais besoin et devraient éviter cela, sauf dans des cas particuliers. Prend également en charge les valeurs nice entre 0 et 7. Seul root peut utiliser cette classe, ce qui signifie que vous préfixerez probablement la commande avec sudo. Notez qu’un processus dans la classe temps réel avec la priorité 0 peut priver d’autres processus de ressources. Concrètement, cela signifie qu’un autre programme devra peut-être attendre quelques minutes, voire des heures, pour finir d’écrire/lire quelques mégaoctets de données. À utiliser avec précaution, seulement si vous êtes sûr d’en avoir besoin. Si un processus vital de classe 2 ou 3 a besoin d’un accès au disque, votre système peut se bloquer jusqu’à ce que le processus en temps réel ait terminé d’écrire.

Exemple de commande :

Exemples d’ions utiles

Dans le dernier exemple, au lieu d’exécuter une commande copier/déplacer, un shell a été lancé (Bash). Désormais, chaque commande suivante que vous tapez dans ce shell héritera de la classe et de la priorité de planification des E/S. Vous pouvez également le faire sur une interface graphique.

Psssssst :  Ubuntu est-il compatible avec les programmes Windows ?

La dernière commande lancera un explorateur de fichiers sur l’environnement de bureau LXDE. Remplacez  » pcmanfm  » par le nom de l’explorateur de fichiers de votre bureau particulier. Désormais, toutes les opérations de disque que vous démarrez seront effectuées avec la classe de planification d’E/S inactive.

Dans d’autres situations, une opération de copie/déplacement peut déjà être active. Dans ce cas, vous pouvez utiliser ionice d’une manière différente.

Cela modifie la classe de priorité du programme exécuté avec l’ID de processus 4910. Vous pouvez trouver le PID (ID de processus) avec votre gestionnaire de tâches ou avec une commande comme pgrep.

Priorité Io du processus de changement Ionice

Conclusion

ionice peut être utile sur les ordinateurs de bureau que vous ne voulez pas ralentir pendant que vous copiez/déplacez des fichiers volumineux. Mais gardez à l’esprit que cela peut aussi être encore plus utile sur les serveurs. Vous ne voulez certainement pas qu’un site Web que vous y hébergez soit à la traîne de vos visiteurs pendant que vous effectuez une sauvegarde complète.

Cet article est-il utile ? Oui Non

Bouton retour en haut de la page

Adblock détecté

Veuillez désactiver votre bloqueur de publicités pour pouvoir visualiser le contenu de la page. Pour un site indépendant avec du contenu gratuit, c’est une question de vie ou de mort d’avoir de la publicité. Merci de votre compréhension! Merci