73 votes

Existe-t-il un moyen de définir la priorité d'un processus sous Mac OS X ?

J'ai un processus d'arrière-plan qui fonctionne à 100 % du processeur sur Mac OS X. Toutes les autres applications sont très lentes à cause de lui.

J'aimerais faire en sorte que ce processus ne prenne pas plus de 50 % du temps afin que mes applications fonctionnent mieux. Comment puis-je faire cela ?

72voto

spong Points 875

À partir de la ligne de commande ( Terminal.app ou autre), utilisez nice y renice comme sur les autres Unix.

Utilisez nice lors du lancement d'un processus :

nice -n <priority> <command> <arguments to command>

La priorité par défaut est zéro, les valeurs positives sont "plus agréables" (c'est-à-dire une priorité inférieure) et les valeurs négatives sont "moins agréables" (une priorité supérieure). On dirait que Mac OS fonctionne de +10 à -10.

Utilisez renice pour modifier la priorité d'un processus déjà en cours d'exécution (à partir de l'onglet renice page de manuel sur 10.5) :

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]  
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

La partie qui vous intéresse ici est le pid bit. C'est l'identifiant du processus pour le travail et vous pouvez le trouver en utilisant ps -u <your username> et de chercher le nom du processus, mais je préfère top -o dans ce cas, parce que le processus qui vous intéresse sera en haut de la liste.

Note : Sans les privilèges du superutilisateur, vous ne pouvez jamais augmenter la priorité d'un processus. Pour les utilisateurs normaux, nice y renice sont des rues à sens unique. Et de petits changements de priorité peuvent avoir des effets importants sur le temps de fonctionnement. Allez-y donc doucement jusqu'à ce que vous compreniez.

23voto

pietro Sormanni Points 221

Vous pouvez utiliser la commande :

renice -n # PID

Où :

  • # est un nombre qui doit être plus grand que 0 (sinon vous allez déplacer votre processus vers une priorité plus élevée)
  • PID est l'ID du processus que vous pouvez voir en tapant top sur l'application terminal (utilities/terminal.app)

S'il s'agit d'un processus système ou d'un autre processus utilisateur, vous devez taper :

sudo renice -n 10 PID

Il vous demandera votre mot de passe (si vous êtes sudoer). Pour ce qui est du nombre, je recommanderais 10 ou 19 (encore moins prioritaire).

Notez que cela modifiera la priorité et non l'utilisation du CPU. Si vous n'exécutez pas d'autres processus qui nécessitent du CPU ou si vous avez plus d'un CPU sur votre Mac (Core 2 Quad Core), le processus peut toujours utiliser 100% du CPU.

10voto

William Entriken Points 2154
renice 20 $(pgrep ImageOptim)

Ou utilisez le nom de votre programme au lieu d'ImageOptim.

8voto

bankay Points 179
  • Si votre processus est une application ou un utilitaire d'aide à l'application plutôt qu'un processus système et que vous ne voulez pas faire de nice ou renice à chaque démarrage du système, vous pouvez essayer de le faire pour AppPolice . C'est un logiciel libre et gratuit. Vous pouvez le télécharger aquí ou l'installer avec le programme homebrew commande brew cask install AppPolice

  • Une autre alternative serait une très belle interface graphique de gestionnaire de tâches en ligne de commande appelée htop . Vous pouvez voir tous les processus et régler leur nice valeurs par F7 et et F8 des raccourcis. (Veuillez noter que le négatif nice les valeurs positives sont plus prioritaires et l'inverse pour les valeurs positives)

Pour l'installer :

  • Installer homebrew si vous ne l'avez pas encore.
  • Exécutez cette commande brew install htop dans Terminal
  • Maintenant, vous pouvez faire htop pour voir et gérer les processus dans le Terminal ou sudo htop pour couvrir tout le système.

6voto

beiju Points 1391

Il existe également un certain nombre d'utilitaires GUI, comme les gratuits BeNicer et Assistant de processus (mon précédent favori), et la version à 1,99 $ de Congélateur qui est mon nouveau préféré. Ils fonctionnent tous sur des applications en cours d'exécution.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X