J'ai un processus d'arrière-plan fonctionnant à 100% du processeur sur Mac OS X. Toutes les autres applications sont très lentes à cause de cela.
J'aimerais que ce processus ne prenne pas plus de 50% afin que mes applications puissent mieux fonctionner. Comment puis-je faire ceci?
À partir de la ligne de commande (Terminal.app
ou autre), utilisez Nice
et renice
, comme sur d’autres systèmes 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 moins prioritaires) et les valeurs négatives sont "moins agréables" (priorité plus élevée). On dirait que Mac OS va de +10 à -10.
Utilisez renice
pour changer la priorité d'un processus en cours d'exécution (à partir de la page de manuel renice
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 bit pid
. C'est l'identifiant du processus pour le travail et vous pouvez le trouver en utilisant ps -u <your username>
et en recherchant le nom du processus, mais je préfère top -o
dans ce cas, car le processus qui vous intéresse sera presque au sommet.
Remarque: Sans les privilèges de superutilisateur, vous ne pouvez jamais augmenter la priorité d'un processus. Pour les utilisateurs normaux, Nice
et renice
sont des rues à sens unique. Et de petits changements de priorité peuvent avoir des effets importants sur le temps d'exécution. Allez-y doucement jusqu'à ce que vous le compreniez.
Vous pouvez utiliser la commande:
renice -n # PID
Où:
top
sur l'application du 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). En ce qui concerne le nombre, je recommanderais 10 ou 19 (priorité encore plus basse).
Notez que cela changera la priorité et non l'utilisation du processeur. Si vous n'exécutez pas d'autres processus nécessitant du processeur ou si vous avez plus d'un processeur sur votre Mac (Core 2 Quad Core), le processus peut toujours utiliser 100% du processeur.
Il existe également un certain nombre d’utilitaires graphiques, tels que l’assistant gratuit BeNicer et Process Wizard (mon précédent favori) et la version à 1,99 $ de Freezer , qui est mon nouveau favori. Tout cela fonctionne sur les applications en cours d'exécution.
renice 20 $(pgrep ImageOptim)
Ou utilisez le nom de votre programme au lieu de ImageOptim
Si votre processus est une application ou un utilitaire d'application plutôt qu'un processus système et que vous ne voulez pas faire Nice
ou renice
à chaque démarrage du système, vous pouvez l'essayer pour AppPolice . C'est open source et gratuit. Vous pouvez le télécharger ici .
Une autre alternative serait une très belle interface graphique pour le gestionnaire de tâches en ligne de commande appelée htop
. Vous pouvez voir tous les processus et ajuster leurs valeurs Nice
à l'aide des raccourcis F7
et F8
. (Veuillez noter que les valeurs Nice
négatives sont plus prioritaires et opposées pour les valeurs positives)
Pour l'installer:
brew install htop
dans Terminalhtop
pour voir et gérer les processus dans Terminal ou Sudo htop
pour couvrir tout le système.