Bien que ce ne soit pas une réponse directe à la question de l'OP, si vous avez un problème avec un processus particulier qui prend trop de temps CPU, et rend votre ordinateur inutilisable, et que vous ne vous souciez pas du temps que ce processus prend pour terminer la tâche sur laquelle il travaille, vous pouvez utiliser la fonction renice
pour modifier la priorité de ce processus, afin qu'il se comporte bien (d'où son nom).
Tout d'abord, vous devez trouver le PID du processus qui utilise les ressources du CPU. Vous pouvez le faire soit dans le moniteur d'activité, soit dans Terminal.app avec la commande ps
par exemple, pour trouver le PID du navigateur Safari, tapez :
MacBook:~ ps -ef | grep Safari
501 17452 263 0 11:36pm ?? 4:15.60 /Applications/Safari.app/Contents/MacOS/Safari
La deuxième ligne ci-dessus est la sortie, et le PID est 17452 dans ce cas particulier.
Ensuite, la tâche suivante consiste à modifier la priorité du processus (disons qu'il s'agit de Safari que nous voulons faire se comporter de manière agréable). Pour ce faire, dans Terminal.app, tapez :
MacBook:~ renice -n 10 -p 17452
Le site -n
L'option change le niveau de gentillesse en ajoutant 10 à la valeur actuelle (0 par défaut). Les valeurs sont comprises entre -20 et 20, la valeur la plus basse signifiant la priorité la plus élevée. En tant qu'utilisateur ordinaire, vous pouvez utiliser les valeurs 0 à 20. Pour attribuer une valeur négative, vous devez disposer des privilèges de Root (par exemple, utilisez l'option sudo
commande). Pour en savoir plus nice
y renice
en tapant man nice
y man renice
dans Terminal.app.
nice
y renice
ne limitent pas le pourcentage de l'unité centrale disponible pour une application donnée, ils permettent cependant de modifier la priorité de planification, ou en d'autres termes, la part du temps de l'unité centrale qu'un processus obtiendra. Tout ceci est relatif à la charge CPU de votre système, donc si le système est sous-utilisé, vous ne verrez probablement aucune différence.
0 votes
Je parviens à peine à faire en sorte que Safari utilise 10 % de mon processeur avec une vingtaine de fenêtres ouvertes. pourquoi l'application utilise ces ressources et la réparer, plutôt que de simplement limiter les ressources qu'elle peut utiliser.
1 votes
@benwiggy - Luky you. Le fait est qu'une application peut se comporter comme bon lui semble, par exemple elle peut prétendre utiliser toutes les ressources disponibles dans le système, volontairement ou à cause d'un bug. C'est le système d'exploitation qui doit contraindre chaque application afin que tous les processus aient leur part du temps CPU. Et l'utilisateur doit être en mesure de faire savoir au système d'exploitation quels processus ont la priorité en vertu de la loi sur la protection des données. son point de vue. Il faut également tenir compte du fait que de nombreux ordinateurs fonctionnent avec des piles... la consommation d'énergie est donc un autre facteur à prendre en considération.
2 votes
Il convient de noter que l'utilisation à 100 % du processeur sur un Macbook Air 2020 correspond en fait à une utilisation de 12,5 % (un processeur à 8 cœurs a une capacité de 800 %).
0 votes
Est-ce que l'une des solutions no s'appuyant sur SIGSTOP ou renice fonctionnent sur M1/Apple Silicon ? cputhrottle ( willnolan.com/cputhrottle/cputhrottle.html ) ne fonctionne PAS, du moins pas avec SIP (System Integrity Protection) activé. Il compile, mais l'appel mach échoue : libc++abi : terminating with uncaught exception of type Process::ManipulatorException : Erreur sur task_for_pid de pid XXXX, res = 5