web-dev-qa-db-fra.com

Comment augmenter la priorité d'une tâche de manière permanente sur une machine Linux?

Comment augmenter la priorité d'une tâche sur une machine Linux?

Ce que j'ai fait jusqu'à présent: Après de petites recherches, j'ai constaté que nous pouvions augmenter la priorité d'une tâche à l'aide de la commande Nice. Si nous souhaitons augmenter la priorité d'une tâche existante, nous pouvons également utiliser la commande RENICE.

Mais mon problème:

  1. Dans certains tutoriels, il est mentionné que les valeurs de Nice varient de 0 à 99, mais dans certains tutoriels, elles indiquent que les valeurs de Nice varient de -20 à 19. Lequel est correct?

  2. Comment augmenter la valeur Nice pour une tâche d'interface graphique? Si nous faisons une copie à l'aide d'un terminal, je peux augmenter sa priorité à l'aide de la commande Nice, mais comment augmenter la priorité d'une tâche effectuée à l'aide d'une interface graphique (par exemple, la copie de fichiers d'un périphérique USB vers le système via une interface graphique)

  3. Est-il possible de définir la priorité d'une tâche pour la vie? Je souhaite définir la priorité la plus élevée pour "COPIER DES FICHIERS DANS UN SYSTÈME (à l'aide d'une interface graphique)" de manière permanente

Existe-t-il quelqu'un qui peut m'aider à définir la priorité la plus élevée pour une tâche (tâche effectuée via une interface graphique)?

2
Raj

Je pense que vous devriez demander dans nix & Linux mais dans tous les cas, ceux qui disent que Nice valorise le processeur sous Linux varient de 0 à 99 sont niquement pour le système d’exploitation temps réel . Les valeurs de Nice sont comprises entre -20 et 20, la priorité la plus élevée étant -20, en mode normal (celui utilisé par la plupart des utilisateurs) * NIX pour le processeur. Ce qui est pour la plupart des cas.

En outre, la copie de fichier ne nécessite pas réellement beaucoup de ressources processeur (dépendant des systèmes de fichiers), mais la priorité d'E/S. À partir du noyau 2.6.26, les valeurs ionice sont déterminées par les valeurs Nice de la CPU à l'aide des formules suivantes:

io_priority = (cpu_Nice + 20) / 5

En outre, tous les processus (sauf le code source modifié) commencent par la classe de priorité "Meilleur effort" qui utilise les formules ci-dessus. Mais, dans tous les cas, vous n'avez probablement pas besoin de définir ceci par défaut.

Une façon de définir la priorité d'E/S pour démarrer un processus consiste à:

ionice -c2 -n6 SOME_COMMAND

Les processus souhaitant définir/obtenir leurs propres classes et priorités de planification d'E/S doivent utiliser les fonctions ioprio_set et ioprio_get.

Aussi un avertissement de Nice de Linux Poison :

Lisez attentivement la description en temps réel. Temps réel IO De bons processus vont priver complètement le système jusqu'à ce qu'ils soient terminés à l'aide du disque. Vous pouvez facilement rendre votre système inactif pendant de longues périodes.

De plus, IO netteté n’a d’effet que si vous utilisez le planificateur CFQ io. Si vous avez une ligne ascenseur = (as, date limite, noop) dans votre menu.lst, IO la gentillesse n'aura aucun effet.

Sources:

4
Braiam

Vous recherchez: Auto Nice Daemon

Le démon Nice auto s’active automatiquement à certains intervalles et redéfinit les tâches en fonction de leur priorité et de l’utilisation de leur processeur. Les emplois appartenant à root sont laissés seuls. Les emplois ne sont jamais augmentés dans leur priorité.
Les intervalles de renice peuvent être ajustés, ainsi que le niveau de Nice par défaut et les intervalles d'activation. Une base de données prioritaire stocke des nuplets utilisateur/groupe/travail ainsi que leurs valeurs de renvoi pour trois intervalles de temps d'utilisation de l'UC. Les niveaux de Nice négatifs sont interprétés comme des signaux à envoyer à un processus, déclenchés par l'utilisation de la CPU; De cette façon, les Netscapes qui deviennent fouser peuvent être tués automatiquement. La stratégie de recherche dans la base de données prioritaire peut être configurée. AND fournit également des fichiers de configuration à l'échelle du réseau avec des sections spécifiques à l'hôte, ainsi qu'un support générique/regexp pour les commandes de la base de données prioritaire. Page d'accueil: http://and.sourceforge.net/

Vous pouvez facilement l'installer sur votre Ubuntu:

# aptitude install and

Et modifier le fichier de configuration:

# vi /etc/and.priorities

Vous dites:

Est-il possible de définir la priorité d'une tâche pour la vie? Je souhaite définir la priorité la plus élevée pour "COPIER DES FICHIERS DANS UN SYSTÈME (à l'aide d'une interface graphique)" de manière permanente

Cela dépend du type d’interface graphique que vous préférez. Obtenez le nom de votre gestionnaire de fichiers et ajoutez-le à config "/etc/and.priorities".

Malheureusement, Auto Nice Daemon peut changer le prio dans la plage -20: 19.

C'est pareil que "homme Nice" donne:

Les valeurs de gentillesse vont de -20 (le plus favorable au processus) à 19 (le moins favorable au processus).

Pour obtenir -99 et RT (en temps réel), vous devriez lire les deux prochains hommes:

# man chrt

# man ionice
3
innocent-world