Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Linux : L'architecture système

Utiliser la commande nice

Testez gratuitement nos 1338 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez apprendre à utiliser la commande nice pour définir et modifier la priorité des processus.
06:44

Transcription

Je vous le disais : la priorité des processus peut être gérée. Vous pouvez gérer un peu manuellement la priorité des processus avec une commande qui s'appelle nice. Chaque processus a ce qu'on appelle une niceness. Un degré de gentillesse, si vous voulez, par rapport au système. La niceness est entre - 20 et + 20. Si je regarde avec juste la commande nice quelle est la priorité de ma session, et bien, on est à 0. En général, la niceness est héritée du parent. Et c'est toujours 0. Donc, on est entre - 20 et + 20. En fait, on est entre - 20 et 19. Et - 20, ça veut dire la priorité la plus haute. Et 19, la priorité la plus basse. Donc, si vous augmentez la valeur du niceness, il est de plus en plus gentil, et donc, il laisse de plus en plus sa place. Et donc, il a une priorité de plus en plus faible. C'est logique. Et si vous diminuez la priorité, et bien, vous êtes de plus en plus méchant, et donc, vous prenez de plus en plus la place. Évitez de faire quelque chose comme une niceness de - 20 ou de - 19. Vous serez à égalité avec les processus du système. C'est vraiment pas une bonne idée. Donc, les processus du système, eux, ont une niceness négative parce que y a certains processus qui doivent être prioritaires. D'ailleurs, vous pouvez changer votre niceness en positif normalement sur vos processus, mais vous devez être super user pour faire une niceness négative. Donc, pour modifier votre niceness, et bien, vous pouvez appeler la commande nice, et ensuite, vous appelez une commande. Par exemple... Bon. On va voir l'aide, d'ailleurs. Y a pas grand-chose comme options dans nice. Vous pouvez mettre n. Et puis, la valeur. Une valeur entière. C'est tout. Et ensuite, vous lancez une commande. Ce qui veut dire que vous faites ceci : nice -n. Par exemple, vous, vous mettez à 10. Ce qui est la valeur par défaut, ici. On l'a vu dans l'aide. Et vous faites quelque chose comme, par exemple, un tar xvzf pour décompresser un très, très gros fichier que vous voulez décompresser. Et donc, cette instruction va avoir une priorité plus faible et ne vas pas troubler les autres processus du serveur autant si vous n'aviez pas utilisé nice. Entre parenthèses, Linux a aussi une commande qui s'appelle ionice comme ceci... Alors, on regarde juste l'aide en ligne. ... qui permet de faire la même chose sur la priorité pour les io. C'est-à-dire, évidemment, les entrées sorties. Et ça vous permet de déterminer une classe, ici, pour dire : bon, au niveau des entrées sorties, c'est-à-dire le travail avec le disque, on va plutôt être en best-effort, plutôt en realtime, et on va avoir donc des classes de traitement sur les io. Ça peut être pratique si vous avez un peu de saturation sur vos disques. Ici, ionice peut soit être appelé avec une commande pour déterminer on pourrait dire l'ioniceness de cette commande, ou bien de travailler, comme vous le voyez ici, un PID existant, donc une command existante. Et nice peut faire la même chose. Si vous appelez nice, ça veut dire que vous appelez nice pour une commande que vous allez lancer. Mais si vous voulez prendre un processus existant et changer interactivement son niceness, vous pouvez le faire avec une commande qui s'appelle renice. Donc, là, ça peut être pratique. Encore une fois, à utiliser avec modération. Vous n'allez pas passer votre journée à regarder les processus et à changer leur niceness pour essayer de manuellement faire un travail de scheduling à la place du kernel. Mais bon, si vous êtes dans une situation où vous avez un processus qui vous prend beaucoup de ressources et que vous voulez diminuer son impact, vous pouvez essayer avec renice. Donc, le principe : on va regarder les processus. Voilà, on a un certain nombre de processus. Par exemple, vim, on se souvient, 2778. Le process 2778, on voudrait voir plus d'informations. Donc, je peux appeler ps. Donc, ps pour montrer les process. On va dire, process show. Processes... Je sais pas exactement, d'ailleurs, quelle est l'abréviation. Et on va utiliser la commande p pour spécifier un PID. Donc, le 2778. Le voilà. J'ai par défaut, à l'affichage, le PID, sa console, le temps et la commande. Mais je peux rajouter avec la commande o qui va me permettre de choisir des colonnes d'output. Et bien, je peux choisir d'afficher, par exemple, le PID, la commande elle-même, Et puis, ni pour voir son niceness ou sa niceness. Donc, ici, ce que je dis, c'est : montre-moi le processus 2778 et en output, tu me donnes seulement ces colonnes. Et donc, je les ai séparées par des virgules. Voilà, ça me donne ceci. Et je vois qu'en 2778, et bien, qui est la commande vim, son niceness, et je m'y attendais quand même un peu, est à 0. Et donc, si je veux le renicer, et bien... Renice... Et y a quelques options, mais vous pouvez le faire très, très simplement, sans spécifier les options, comme ceci. Alors, vous pouvez... Vous pouvez faire -p 2778 et puis ensuite, l'option n comme nice pour la priorité. Par exemple, je le mets à 10. Bon, je peux le faire comme ça. Et en fait, faut que je le fasse dans l'ordre, donc... On fait n 10 et p. Voilà. Ou bien, vous pouvez le faire plus simplement. Comme ceci. Donc, là, c'est juste une question de mémoire. Faut se souvenir que vous faites un renice espace, nouvelle priorité, espace, le PID. Donc, je vais le remettre à zéro. Alors, oui, permission non accordée. Il faut que, pour augmenter la priorité, je sois super user. Voilà. Par contre, je n'ai pas besoin, comme vous l'avez vu, pour diminuer la priorité. Ce qui est quand même assez logique. Donc, nice, ionice, renice vont vous permettre éventuellement, si vous en avez besoin... Je me répète : passez pas toute la journée à faire ça. Linux est quand même un système d'exploitation qui gère ça très, très bien automatiquement mais donc, dans des cas particuliers, ionice pour les io, nice pour lancer un processus, et ça, ça peut être utile. Ça va prendre du temps. Vous êtes sur un serveur. Vous voulez pas trop, trop charger l'activité du serveur. Donc vous utilisez nice et renice si vous avez un processus en cours que vous voulez ajuster.

Linux : L'architecture système

Prenez en main les principes généraux de l’architecture système de Linux. Comprenez le fonctionnement du noyau (kernel), de la gestion de la mémoire, des processus, etc.

2h01 (20 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Thématiques :
IT
Systèmes d'exploitation
Spécial abonnés
Date de parution :15 sept. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !