Exécuter le processus avec une priorité plus élevée

14

Je veux exécuter mplayeravec une priorité plus élevée que tout autre processus, y compris les processus IO. Comment puis je faire ça?

SHW
la source
Il n'y a pas de réponse de variante cross-unix à cette question. En général, il est préférable de décrire le système d'exploitation que vous utilisez (y compris la distribution pour Linux, mais ici, cela n'aura pas d'importance du tout). J'ai ajouté une linuxbalise, veuillez la modifier si ce n'est pas ce que vous utilisez.
Gilles 'SO- arrête d'être méchant'
Cela vous dérange si je vous demande pourquoi vous cherchez à augmenter la priorité de mplayer? Je demande parce que j'ai eu des problèmes avant d'augmenter la priorité de mplayer, l'effet était contraire à ce que j'essayais d'accomplir parce que mplayer s'occuperait d'utiliser le temps CPU pour nettoyer la post-production, puis s'arrêterait alors que le réseau enfin a eu un soupir d'air pour aller chercher plus de contenu, puis mplayer revenait à la vie, juste pour s'arrêter à nouveau en attendant le réseau.
killermist
J'ai demandé cette cause, je joue un film via mplayer. Chaque fois que j'essaie de télécharger quelques fichiers Go sur le réseau. Mplayer observe le tranchage et une secousse pendant la lecture.
SHW

Réponses:

16

Pour définir la gentillesse (lié au CPU), utilisez nice. Pour définir la gentillesse IO (lié à IO), utilisez ionice. Reportez-vous aux pages de manuel respectives pour plus d'informations. Vous pouvez les utiliser ensemble comme suit:

ionice -c 2 -n 0 nice -n -20 mplayer

Remarque: le niveau de gentillesse le plus bas (plus bas signifie plus favorable) que vous pouvez définir est déterminé par limits.conf. Sur mon ordinateur, le fichier se trouve à /etc/security/limits.conf.

phunehehe
la source
1
Mentionner les classes d'ordonnanceur io est une bonne chose, car c'est probablement un facteur important. Cela ne vaut rien que pour la -c2classe de planification intermédiaire , les processus sont par défaut triés par niveau agréable, donc l'exemple de commande que vous avez donné n'est vraiment pas nécessaire. On pourrait essayer de mettre mplayer dans la -c1classe en temps réel. (Avec un accès root.)
mattdm
7

En général, en tant qu'utilisateur non root, vous ne pouvez que diminuer la priorité de vos tâches, pas les augmenter. Ainsi, une approche consisterait à abaisser la priorité de tout le reste. Ou, vous pouvez configurer quelque chose au niveau du système qui gère vos priorités.

Si vous utilisez une distribution Linux relativement moderne, le moyen le plus puissant serait avec des groupes de contrôle . C'est à ses balbutiements, donc en gros, vous devez tout configurer à la main, mais en bref, vous voulez configurer le catégoriseur pour placer différents processus dans différents groupes de contrôle du processeur, puis donner au processus mplayer plus de partages de processeur.

mattdm
la source